Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/remminadoc.gitlab.io.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2023-07-11 16:12:58 +0300
committerAntenore Gatta <antenore@simbiosi.org>2023-07-11 16:12:58 +0300
commit422b172a2d7a117b2cad135a49f5139f11af0bcb (patch)
tree8723ede8b783593366d55e8977d751d3250c229d
parente25aa175bdbd1822659830d5ff2e81d08687e633 (diff)
Automatic doc build by remmina-ci
-rw-r--r--public/exec__plugin_8c.html6
-rw-r--r--public/exec__plugin_8c_source.html8
-rw-r--r--public/globals_eval_r.html3
-rw-r--r--public/globals_func_r.html434
-rw-r--r--public/globals_r.html319
-rw-r--r--public/gvnc__plugin_8c.html8
-rw-r--r--public/gvnc__plugin_8c_source.html20
-rw-r--r--public/navtreedata.js26
-rw-r--r--public/navtreeindex0.js4
-rw-r--r--public/navtreeindex10.js6
-rw-r--r--public/navtreeindex11.js6
-rw-r--r--public/navtreeindex12.js6
-rw-r--r--public/navtreeindex13.js6
-rw-r--r--public/navtreeindex14.js6
-rw-r--r--public/navtreeindex15.js6
-rw-r--r--public/navtreeindex16.js6
-rw-r--r--public/navtreeindex17.js28
-rw-r--r--public/navtreeindex18.js3
-rw-r--r--public/navtreeindex5.js110
-rw-r--r--public/navtreeindex6.js6
-rw-r--r--public/navtreeindex7.js6
-rw-r--r--public/navtreeindex8.js6
-rw-r--r--public/navtreeindex9.js6
-rw-r--r--public/plugin_8c.html2
-rw-r--r--public/plugin_8c_source.html4
-rw-r--r--public/plugin_8h_source.html8
-rw-r--r--public/python__wrapper__plugin_8c_source.html2
-rw-r--r--public/python__wrapper__protocol_8c_source.html12
-rw-r--r--public/python__wrapper__remmina_8c.html56
-rw-r--r--public/python__wrapper__remmina_8c_source.html107
-rw-r--r--public/python__wrapper__remmina_8h.html6
-rw-r--r--public/python__wrapper__remmina_8h_source.html8
-rw-r--r--public/rcw_8c_source.html10
-rw-r--r--public/rdp__channels_8c_source.html2
-rw-r--r--public/rdp__event_8c_source.html4
-rw-r--r--public/rdp__plugin_8c.html176
-rw-r--r--public/rdp__plugin_8c_source.html153
-rw-r--r--public/rdp__plugin_8h.html2
-rw-r--r--public/rdp__plugin_8h_source.html4
-rw-r--r--public/remmina_8c_source.html2
-rw-r--r--public/remmina__exec_8c_source.html8
-rw-r--r--public/remmina__file_8c_source.html10
-rw-r--r--public/remmina__file__editor_8c.html196
-rw-r--r--public/remmina__file__editor_8c.js2
-rw-r--r--public/remmina__file__editor_8c_source.html171
-rw-r--r--public/remmina__file__editor_8h.html14
-rw-r--r--public/remmina__file__editor_8h_source.html14
-rw-r--r--public/remmina__file__manager_8c_source.html2
-rw-r--r--public/remmina__main_8c_source.html16
-rw-r--r--public/remmina__message__panel_8c_source.html8
-rw-r--r--public/remmina__mpchange_8c_source.html2
-rw-r--r--public/remmina__plugin__manager_8c.html20
-rw-r--r--public/remmina__plugin__manager_8c_source.html29
-rw-r--r--public/remmina__plugin__manager_8h.html16
-rw-r--r--public/remmina__plugin__manager_8h_source.html18
-rw-r--r--public/remmina__pref__dialog_8c_source.html2
-rw-r--r--public/remmina__protocol__widget_8c_source.html24
-rw-r--r--public/remmina__protocol__widget_8h_source.html4
-rw-r--r--public/remmina__sftp__plugin_8c.html8
-rw-r--r--public/remmina__sftp__plugin_8c_source.html10
-rw-r--r--public/remmina__ssh_8c_source.html6
-rw-r--r--public/remmina__ssh__plugin_8c.html14
-rw-r--r--public/remmina__ssh__plugin_8c_source.html12
-rw-r--r--public/remmina__stats_8c_source.html2
-rw-r--r--public/search/all_12.js9
-rw-r--r--public/search/enumvalues_9.js1
-rw-r--r--public/search/functions_11.js2
-rw-r--r--public/spice__plugin_8c.html12
-rw-r--r--public/spice__plugin_8c_source.html22
-rw-r--r--public/spice__plugin_8h.html2
-rw-r--r--public/spice__plugin_8h_source.html2
-rw-r--r--public/struct___remmina_protocol_setting.html18
-rw-r--r--public/types_8h.html22
-rw-r--r--public/types_8h.js1
-rw-r--r--public/types_8h_source.html89
-rw-r--r--public/vnc__plugin_8c.html20
-rw-r--r--public/vnc__plugin_8c_source.html24
-rw-r--r--public/www__plugin_8c.html8
-rw-r--r--public/www__plugin_8c_source.html12
-rw-r--r--public/www__plugin_8h.html2
-rw-r--r--public/www__plugin_8h_source.html2
-rw-r--r--public/x2go__plugin_8c.html10
-rw-r--r--public/x2go__plugin_8c_source.html16
83 files changed, 1303 insertions, 1172 deletions
diff --git a/public/exec__plugin_8c.html b/public/exec__plugin_8c.html
index bd58a3fa3..a12a2cdd3 100644
--- a/public/exec__plugin_8c.html
+++ b/public/exec__plugin_8c.html
@@ -431,7 +431,7 @@ Variables</h2></td></tr>
<div class="ttc" id="exec__plugin_8c_html_a53edac9deab20832959582a95bedcafe"><div class="ttname"><a href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a></div><div class="ttdeci">static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00117">exec_plugin.c:117</a></div></div>
<div class="ttc" id="exec__plugin_8c_html_a11eddf7a4294b5650382e025f9f2a0ad"><div class="ttname"><a href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00146">exec_plugin.c:146</a></div></div>
<div class="ttc" id="exec__plugin_8c_html_a775ebb715d8db084d673e05ae526c088"><div class="ttname"><a href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00255">exec_plugin.c:255</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00304">304</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
@@ -456,8 +456,8 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execcommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;runasync&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Asynchronous execution&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;kill_proc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Kill process on disconnect&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execcommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;runasync&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Asynchronous execution&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;kill_proc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Kill process on disconnect&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
diff --git a/public/exec__plugin_8c_source.html b/public/exec__plugin_8c_source.html
index f33854966..0591d7f81 100644
--- a/public/exec__plugin_8c_source.html
+++ b/public/exec__plugin_8c_source.html
@@ -89,8 +89,8 @@ $(document).ready(function(){initNavTree('exec__plugin_8c_source.html','');});
<a href="exec__plugin_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2017-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Initially based on the plugin &quot;Remmina Plugin EXEC&quot;, created and written by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Fabio Castelli (Muflone) &lt;muflone@vbsimple.net&gt;.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="exec__plugin__config_8h.html">exec_plugin_config.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin_8h.html">common/remmina_plugin.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkkeysyms.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;sys/wait.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define GET_PLUGIN_DATA(gp) (RemminaPluginExecData*)g_object_get_data(G_OBJECT(gp), &quot;plugin-data&quot;)</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html"> 51</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_plugin_exec_data.html">_RemminaPluginExecData</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1"> 52</a></span>&#160; GtkWidget *<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41"> 53</a></span>&#160; GtkTextBuffer *<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4"> 54</a></span>&#160; GtkTextBuffer *<a class="code" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4">err</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb"> 55</a></span>&#160; GtkWidget *<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6"> 56</a></span>&#160; GPid <a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;} <a class="code" href="exec__plugin_8c.html#a44fb47f82521cf4e8a802f4042f6edb8">RemminaPluginExecData</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7"> 59</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *<a class="code" href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a> = NULL;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_DEBUG(fmt, ...) remmina_plugin_service-&gt;_remmina_debug(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71"> 64</a></span>&#160;<a class="code" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a>( GPid <a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>, gint status)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">/* Close pid */</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; g_spawn_close_pid( pid );</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74"> 70</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">cb_child_setup</a>(gpointer data){</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a> = getpid();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; setpgid(pid, 0);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">static</span> gboolean</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219"> 76</a></span>&#160;<a class="code" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a> (GIOChannel *channel, GIOCondition cond, <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; gchar *string;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; gsize size;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; g_io_channel_unref( channel );</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; g_io_channel_read_line( channel, &amp;<span class="keywordtype">string</span>, &amp;size, NULL, NULL );</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; gtk_text_buffer_insert_at_cursor( gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, <span class="keywordtype">string</span>, -1 );</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">static</span> gboolean</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327"> 97</a></span>&#160;<a class="code" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a> (GIOChannel *channel, GIOCondition cond, <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; gchar *string;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; gsize size;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; g_io_channel_unref( channel );</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; g_io_channel_read_line( channel, &amp;<span class="keywordtype">string</span>, &amp;size, NULL, NULL );</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; gtk_text_buffer_insert_at_cursor( gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4">err</a>, <span class="keywordtype">string</span>, -1 );</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe"> 117</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin init&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; gpdata = g_new0(<a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a>, 1);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; g_object_set_data_full(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>, gpdata, g_free);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a> = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a> = gtk_text_view_new();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), GTK_WRAP_CHAR);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; gtk_text_view_set_editable(GTK_TEXT_VIEW(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), FALSE);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; gtk_text_view_set_left_margin (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), 20);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; gtk_text_view_set_right_margin (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), 20);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a> = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>));</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a> = gtk_scrolled_window_new (NULL, NULL);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; gtk_widget_set_size_request (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>, 640, 480);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>),</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GTK_POLICY_AUTOMATIC,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GTK_POLICY_AUTOMATIC);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; gtk_container_add(GTK_CONTAINER(gp), gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; gtk_container_add(GTK_CONTAINER(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>), gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, <span class="stringliteral">&quot;Remmina Exec Plugin Logger&quot;</span>, -1);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; gtk_widget_show_all(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad"> 146</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> gchar *cmd;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; gchar *stdout_buffer;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; gchar *stderr_buffer;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">char</span> **argv;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GError *error = NULL;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GPid child_pid;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; gint child_stdout, child_stderr;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GtkDialog *dialog;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GIOChannel *out_ch, *err_ch;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin run&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; cmd = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;execcommand&quot;</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span> (!cmd) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; _(<span class="stringliteral">&quot;You did not set any command to be executed&quot;</span>), -1);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; g_shell_parse_argv(cmd, NULL, &amp;argv, &amp;error);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> (error) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; g_error_free(error);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;runasync&quot;</span>, FALSE)) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Run Async&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; g_spawn_async_with_pipes( NULL,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; argv,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; NULL,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; G_SPAWN_DO_NOT_REAP_CHILD |</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; G_SPAWN_SEARCH_PATH_FROM_ENVP |</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; G_SPAWN_SEARCH_PATH,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">cb_child_setup</a>,</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; NULL,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; &amp;child_pid,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; NULL,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; &amp;child_stdout,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; &amp;child_stderr,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; &amp;error);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span> (error != NULL) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; g_error_free(error);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; g_child_watch_add(child_pid, (GChildWatchFunc)<a class="code" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a>, gp );</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a> = child_pid;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">/* Create channels that will be used to read data from pipes. */</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; out_ch = g_io_channel_unix_new(child_stdout);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; err_ch = g_io_channel_unix_new(child_stderr);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">/* Add watches to channels */</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; g_io_add_watch(out_ch, G_IO_IN | G_IO_HUP, (GIOFunc)<a class="code" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a>, gp );</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; g_io_add_watch(err_ch, G_IO_IN | G_IO_HUP, (GIOFunc)<a class="code" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a>, gp );</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; dialog = GTK_DIALOG(gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; _(<span class="stringliteral">&quot;Warning: Running a command synchronously may cause Remmina not to respond.\nDo you really want to continue?&quot;</span>)));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; gint result = gtk_dialog_run (GTK_DIALOG (dialog));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">switch</span> (result)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">case</span> GTK_RESPONSE_YES:</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Run Sync&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; g_spawn_sync (NULL, <span class="comment">// CWD or NULL</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; argv,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; NULL, <span class="comment">// ENVP or NULL</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; G_SPAWN_SEARCH_PATH |</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; G_SPAWN_SEARCH_PATH_FROM_ENVP,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; NULL,</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; NULL,</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; &amp;stdout_buffer, <span class="comment">// STDOUT</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; &amp;stderr_buffer, <span class="comment">// STDERR</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; NULL, <span class="comment">// Exit status</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; &amp;error);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span> (!error) {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Command executed&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, stdout_buffer, -1);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; g_warning(<span class="stringliteral">&quot;Command %s exited with error: %s\n&quot;</span>, cmd, error-&gt;message);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; g_error_free(error);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; g_strfreev(argv);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088"> 255</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin close&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">//if async process was started, make sure it&#39;s dead if option is selected</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;kill_proc&quot;</span>, FALSE)) {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a> !=0 ){</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordtype">int</span> pgid = getpgid(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (pgid != 0){</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; kill(-gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>, SIGHUP);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">else</span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; kill(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>, SIGHUP);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(gp);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;}</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">/* Array of RemminaProtocolSetting for basic settings.</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"> * b) Setting name</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"> * c) Setting description</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment"> * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment"> * f) Setting tooltip</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment"> * g) Validation data pointer, will be passed to the validation callback method.</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> * h) Validation callback method (Can be NULL. Every entry will be valid then.)</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> * use following prototype:</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"> * gboolean mysetting_validator_method(gpointer key, gpointer value,</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> * gpointer validator_data);</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> * gpointer key is a gchar* containing the setting&#39;s name,</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment"> * gpointer value contains the value which should be validated,</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment"> * gpointer validator_data contains your passed data.</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3"> 295</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> <a class="code" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a>[] =</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;{</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execcommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;runasync&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Asynchronous execution&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;kill_proc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Kill process on disconnect&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;};</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment">/* Protocol plugin definition and features */</span></div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99"> 304</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> <a class="code" href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a> = {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, <span class="comment">// Type</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; PLUGIN_NAME, <span class="comment">// Name</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; PLUGIN_DESCRIPTION, <span class="comment">// Description</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; PLUGIN_VERSION, <span class="comment">// Version number</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; PLUGIN_APPICON, <span class="comment">// Icon for normal connection</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; PLUGIN_APPICON, <span class="comment">// Icon for SSH connection</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a>, <span class="comment">// Array for basic settings</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; NULL, <span class="comment">// Array for advanced settings</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>, <span class="comment">// SSH settings type</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; NULL, <span class="comment">// Array for available features</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a>, <span class="comment">// Plugin initialization</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a>, <span class="comment">// Plugin open connection</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a>, <span class="comment">// Plugin close connection</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; NULL, <span class="comment">// Query for available features</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; NULL, <span class="comment">// Call a feature</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; NULL, <span class="comment">// Send a keystroke</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; NULL, <span class="comment">// No screenshot support available</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; NULL, <span class="comment">// RCW map event</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; NULL <span class="comment">// RCW unmap event</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;};</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208"> 327</a></span>&#160;G_MODULE_EXPORT gboolean <a class="code" href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a>(<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *service)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; remmina_plugin_service = service;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">&quot;UTF-8&quot;</span>);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)&amp;remmina_plugin)) {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;}</div><div class="ttc" id="exec__plugin_8c_html_a89c6ce747f68e963b8c6d21427a352f3"><div class="ttname"><a href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00295">exec_plugin.c:295</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html"><div class="ttname"><a href="struct___remmina_plugin.html">_RemminaPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00056">plugin.h:56</a></div></div>
<div class="ttc" id="exec__plugin_8c_html_ae5fe6643dc64e9250dc2a33e9f266e71"><div class="ttname"><a href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a></div><div class="ttdeci">static void cb_child_watch(GPid pid, gint status)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00064">exec_plugin.c:64</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
<div class="ttc" id="struct___remmina_plugin_exec_data_html_a9ff6bc2fe9796bdc74fda1677ebf80c4"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4">_RemminaPluginExecData::err</a></div><div class="ttdeci">GtkTextBuffer * err</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00054">exec_plugin.c:54</a></div></div>
<div class="ttc" id="remmina__plugin_8h_html"><div class="ttname"><a href="remmina__plugin_8h.html">remmina_plugin.h</a></div></div>
@@ -107,9 +107,9 @@ $(document).ready(function(){initNavTree('exec__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_plugin_service_html_a529cc64f67b16f13f0445add690a8df2"><div class="ttname"><a href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">_RemminaPluginService::register_plugin</a></div><div class="ttdeci">gboolean(* register_plugin)(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00166">plugin.h:166</a></div></div>
<div class="ttc" id="exec__plugin_8c_html_a775ebb715d8db084d673e05ae526c088"><div class="ttname"><a href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00255">exec_plugin.c:255</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
<div class="ttc" id="struct___remmina_plugin_exec_data_html_ac7ad166ff0ad398b004d39b72a5aa2e1"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">_RemminaPluginExecData::log_view</a></div><div class="ttdeci">GtkWidget * log_view</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00052">exec_plugin.c:52</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
<div class="ttc" id="exec__plugin_8c_html_a26f6bd87259193e03faa2b969f92dc74"><div class="ttname"><a href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">cb_child_setup</a></div><div class="ttdeci">static void cb_child_setup(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00070">exec_plugin.c:70</a></div></div>
<div class="ttc" id="struct___remmina_plugin_exec_data_html_a8e029765416cac86abd48f12eb0c4de6"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">_RemminaPluginExecData::pid</a></div><div class="ttdeci">GPid pid</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00056">exec_plugin.c:56</a></div></div>
diff --git a/public/globals_eval_r.html b/public/globals_eval_r.html
index f54ab7c39..5704024dc 100644
--- a/public/globals_eval_r.html
+++ b/public/globals_eval_r.html
@@ -400,6 +400,9 @@ $(document).ready(function(){initNavTree('globals_eval_r.html','');});
<li>REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS
: <a class="el" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">types.h</a>
</li>
+<li>REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE
+: <a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">types.h</a>
+</li>
<li>REMMINA_PROTOCOL_SETTING_TYPE_CHECK
: <a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">types.h</a>
</li>
diff --git a/public/globals_func_r.html b/public/globals_func_r.html
index 59c2c129a..e5a8365d1 100644
--- a/public/globals_func_r.html
+++ b/public/globals_func_r.html
@@ -691,6 +691,9 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__file_8c.html#a52a0986eaf54c9e606ce9cdf8bb57e60">remmina_file.c</a>
, <a class="el" href="remmina__file_8h.html#a52a0986eaf54c9e606ce9cdf8bb57e60">remmina_file.h</a>
</li>
+<li>remmina_file_editor_assistance_enabled_check_on_toggled()
+: <a class="el" href="remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6">remmina_file_editor.c</a>
+</li>
<li>remmina_file_editor_browse_avahi()
: <a class="el" href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05">remmina_file_editor.c</a>
</li>
@@ -710,6 +713,9 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
<li>remmina_file_editor_create_all_settings()
: <a class="el" href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38">remmina_file_editor.c</a>
</li>
+<li>remmina_file_editor_create_assistance()
+: <a class="el" href="remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586">remmina_file_editor.c</a>
+</li>
<li>remmina_file_editor_create_behavior_tab()
: <a class="el" href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c">remmina_file_editor.c</a>
</li>
@@ -1390,12 +1396,12 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__main_8h.html#aac0bb51159be042fecab0103e73a54dc">remmina_main.h</a>
</li>
<li>remmina_main_on_action_application_dark_theme()
-: <a class="el" href="remmina__main_8c.html#a91f22c2834ac7f38d201d8d678f8c57b">remmina_main.c</a>
-, <a class="el" href="remmina__main_8h.html#a91f22c2834ac7f38d201d8d678f8c57b">remmina_main.h</a>
+: <a class="el" href="remmina__main_8h.html#a91f22c2834ac7f38d201d8d678f8c57b">remmina_main.h</a>
+, <a class="el" href="remmina__main_8c.html#a91f22c2834ac7f38d201d8d678f8c57b">remmina_main.c</a>
</li>
<li>remmina_main_on_action_application_default()
-: <a class="el" href="remmina__main_8h.html#a05dbb6ce820f3a137949b919d0efa6a1">remmina_main.h</a>
-, <a class="el" href="remmina__main_8c.html#a05dbb6ce820f3a137949b919d0efa6a1">remmina_main.c</a>
+: <a class="el" href="remmina__main_8c.html#a05dbb6ce820f3a137949b919d0efa6a1">remmina_main.c</a>
+, <a class="el" href="remmina__main_8h.html#a05dbb6ce820f3a137949b919d0efa6a1">remmina_main.h</a>
</li>
<li>remmina_main_on_action_application_mpchange()
: <a class="el" href="remmina__main_8c.html#abf51d42fa2c5ce84164b5514b4634229">remmina_main.c</a>
@@ -2200,8 +2206,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="vnc__plugin_8c.html#aa09286b99e12ea23e6a6ea14c5488469">vnc_plugin.c</a>
</li>
<li>remmina_plugin_vnc_update_scale()
-: <a class="el" href="vnc__plugin_8h.html#a8a70c9cdaf6821611a3311c0d4797db9">vnc_plugin.h</a>
-, <a class="el" href="vnc__plugin_8c.html#a1f57bda271e77f086885101650e8d82c">vnc_plugin.c</a>
+: <a class="el" href="vnc__plugin_8c.html#a1f57bda271e77f086885101650e8d82c">vnc_plugin.c</a>
+, <a class="el" href="vnc__plugin_8h.html#a8a70c9cdaf6821611a3311c0d4797db9">vnc_plugin.h</a>
</li>
<li>remmina_plugin_www_close_connection()
: <a class="el" href="www__plugin_8c.html#af1e5c3cccf8fcfb51c4518462b9b61ea">www_plugin.c</a>
@@ -2218,8 +2224,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="www__plugin_8c.html#aaa970cf06dde51601b91b8d6f936b7ed">www_plugin.c</a>
</li>
<li>remmina_plugin_www_decide_resource()
-: <a class="el" href="www__plugin_8h.html#aab3ceb1ae095823fcbee98ce2811b374">www_plugin.h</a>
-, <a class="el" href="www__plugin_8c.html#aab3ceb1ae095823fcbee98ce2811b374">www_plugin.c</a>
+: <a class="el" href="www__plugin_8c.html#aab3ceb1ae095823fcbee98ce2811b374">www_plugin.c</a>
+, <a class="el" href="www__plugin_8h.html#aab3ceb1ae095823fcbee98ce2811b374">www_plugin.h</a>
</li>
<li>remmina_plugin_www_download_started()
: <a class="el" href="www__plugin_8c.html#af4c8fa778acc2d2f7dd9418e48c99f19">www_plugin.c</a>
@@ -2250,8 +2256,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="www__plugin_8c.html#a282f3f57584e24a15a8a5d5cf5aa8d72">www_plugin.c</a>
</li>
<li>remmina_plugin_www_response_received()
-: <a class="el" href="www__plugin_8h.html#a98eddc35144b89bce2e247d5ea49177b">www_plugin.h</a>
-, <a class="el" href="www__plugin_8c.html#a98eddc35144b89bce2e247d5ea49177b">www_plugin.c</a>
+: <a class="el" href="www__plugin_8c.html#a98eddc35144b89bce2e247d5ea49177b">www_plugin.c</a>
+, <a class="el" href="www__plugin_8h.html#a98eddc35144b89bce2e247d5ea49177b">www_plugin.h</a>
</li>
<li>remmina_plugin_www_save_snapshot()
: <a class="el" href="www__plugin_8c.html#a1a152b9760d6b4808393569b0409f8b8">www_plugin.c</a>
@@ -2274,8 +2280,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__pref__dialog_8c.html#a18bfbeb5d049a9f37f7624199b2b864a">remmina_pref_dialog.c</a>
</li>
<li>remmina_pref_dialog_get_dialog()
-: <a class="el" href="remmina__pref__dialog_8c.html#a9f24dad52fd8f57961ac7c5df58f251e">remmina_pref_dialog.c</a>
-, <a class="el" href="remmina__pref__dialog_8h.html#a73b901ed8ee7e318b512f716065adb29">remmina_pref_dialog.h</a>
+: <a class="el" href="remmina__pref__dialog_8h.html#a73b901ed8ee7e318b512f716065adb29">remmina_pref_dialog.h</a>
+, <a class="el" href="remmina__pref__dialog_8c.html#a9f24dad52fd8f57961ac7c5df58f251e">remmina_pref_dialog.c</a>
</li>
<li>remmina_pref_dialog_init()
: <a class="el" href="remmina__pref__dialog_8c.html#a9a050b69e373c90ea7d400aa94f34344">remmina_pref_dialog.c</a>
@@ -2318,12 +2324,12 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__pref_8c.html#a0296a8f5b359547a0aa4cbffb914edd3">remmina_pref.c</a>
</li>
<li>remmina_pref_get_recent()
-: <a class="el" href="remmina__pref_8h.html#a0208d5dc8197423da67e5967aafb7a05">remmina_pref.h</a>
-, <a class="el" href="remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05">remmina_pref.c</a>
+: <a class="el" href="remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05">remmina_pref.c</a>
+, <a class="el" href="remmina__pref_8h.html#a0208d5dc8197423da67e5967aafb7a05">remmina_pref.h</a>
</li>
<li>remmina_pref_get_scale_quality()
-: <a class="el" href="remmina__pref_8c.html#a37cd589f00c94cb28eabb1bce4646d0b">remmina_pref.c</a>
-, <a class="el" href="remmina__pref_8h.html#a37cd589f00c94cb28eabb1bce4646d0b">remmina_pref.h</a>
+: <a class="el" href="remmina__pref_8h.html#a37cd589f00c94cb28eabb1bce4646d0b">remmina_pref.h</a>
+, <a class="el" href="remmina__pref_8c.html#a37cd589f00c94cb28eabb1bce4646d0b">remmina_pref.c</a>
</li>
<li>remmina_pref_get_scale_quality_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">python_wrapper_remmina.c</a>
@@ -2336,8 +2342,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">python_wrapper_remmina.c</a>
</li>
<li>remmina_pref_get_ssh_parseconfig()
-: <a class="el" href="remmina__pref_8h.html#a98b783e4c5c1dae695fe554f52f94a23">remmina_pref.h</a>
-, <a class="el" href="remmina__pref_8c.html#a98b783e4c5c1dae695fe554f52f94a23">remmina_pref.c</a>
+: <a class="el" href="remmina__pref_8c.html#a98b783e4c5c1dae695fe554f52f94a23">remmina_pref.c</a>
+, <a class="el" href="remmina__pref_8h.html#a98b783e4c5c1dae695fe554f52f94a23">remmina_pref.h</a>
</li>
<li>remmina_pref_get_ssh_parseconfig_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">python_wrapper_remmina.c</a>
@@ -2366,8 +2372,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">python_wrapper_remmina.c</a>
</li>
<li>remmina_pref_get_value()
-: <a class="el" href="remmina__pref_8c.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref.c</a>
-, <a class="el" href="remmina__pref_8h.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref.h</a>
+: <a class="el" href="remmina__pref_8h.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref.h</a>
+, <a class="el" href="remmina__pref_8c.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref.c</a>
</li>
<li>remmina_pref_get_value_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">python_wrapper_remmina.c</a>
@@ -2384,8 +2390,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__pref_8h.html#a0dd25f5b3a055b936a5fa327bc71f19c">remmina_pref.h</a>
</li>
<li>remmina_pref_keymap_get_keyval()
-: <a class="el" href="remmina__pref_8c.html#aaac087c000b0863a296f2739f6344af8">remmina_pref.c</a>
-, <a class="el" href="remmina__pref_8h.html#aaac087c000b0863a296f2739f6344af8">remmina_pref.h</a>
+: <a class="el" href="remmina__pref_8h.html#aaac087c000b0863a296f2739f6344af8">remmina_pref.h</a>
+, <a class="el" href="remmina__pref_8c.html#aaac087c000b0863a296f2739f6344af8">remmina_pref.c</a>
</li>
<li>remmina_pref_keymap_get_keyval_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">python_wrapper_remmina.c</a>
@@ -2470,16 +2476,16 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="python__wrapper__protocol_8c.html#a4ad3d2c8c8a65d787389b134ab716807">python_wrapper_protocol.c</a>
</li>
<li>remmina_protocol_widget_call_feature_by_ref()
-: <a class="el" href="remmina__protocol__widget_8c.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_call_feature_by_type()
-: <a class="el" href="remmina__protocol__widget_8h.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_chat_close()
-: <a class="el" href="remmina__protocol__widget_8c.html#a4a3a9ba7422fc302b0b412ac771c9953">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a4a3a9ba7422fc302b0b412ac771c9953">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a4a3a9ba7422fc302b0b412ac771c9953">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a4a3a9ba7422fc302b0b412ac771c9953">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_chat_on_destroy()
: <a class="el" href="remmina__protocol__widget_8c.html#a04f0a11e50cdbd98ab80984fd5aca16d">remmina_protocol_widget.c</a>
@@ -2516,20 +2522,20 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__protocol__widget_8c.html#aa9639b76ac0a92647ce08bdfe943d113">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_emit_signal()
-: <a class="el" href="remmina__protocol__widget_8c.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_cacert()
-: <a class="el" href="remmina__protocol__widget_8h.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_cacrl()
-: <a class="el" href="remmina__protocol__widget_8c.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_clientcert()
-: <a class="el" href="remmina__protocol__widget_8h.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_clientkey()
: <a class="el" href="remmina__protocol__widget_8c.html#a08d312825fc0de9f9286279d99f763a1">remmina_protocol_widget.c</a>
@@ -2540,28 +2546,28 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_domain()
-: <a class="el" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_error_message()
-: <a class="el" href="remmina__protocol__widget_8h.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_expand()
-: <a class="el" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_features()
-: <a class="el" href="remmina__protocol__widget_8h.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_file()
-: <a class="el" href="remmina__protocol__widget_8c.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_gtkwindow()
-: <a class="el" href="remmina__protocol__widget_8h.html#a8127b4cc7c278216dff87a7e4a336dfb">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a8127b4cc7c278216dff87a7e4a336dfb">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a8127b4cc7c278216dff87a7e4a336dfb">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a8127b4cc7c278216dff87a7e4a336dfb">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_height()
: <a class="el" href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget.c</a>
@@ -2572,16 +2578,16 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#abdf99138612d02bc3921b0b77bdc89cb">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_name()
-: <a class="el" href="remmina__protocol__widget_8c.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_password()
-: <a class="el" href="remmina__protocol__widget_8h.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_profile_remote_height()
-: <a class="el" href="remmina__protocol__widget_8c.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_profile_remote_height_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">python_wrapper_remmina.c</a>
@@ -2594,8 +2600,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">python_wrapper_remmina.c</a>
</li>
<li>remmina_protocol_widget_get_savepassword()
-: <a class="el" href="remmina__protocol__widget_8h.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_type()
: <a class="el" href="remmina__protocol__widget_8h.html#aca61c93aaf5f3cbc2046c8267bb84a2e">remmina_protocol_widget.h</a>
@@ -2627,12 +2633,12 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__protocol__widget_8c.html#a5567a5c55d9a880d174faabafcd15fa3">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_is_closed()
-: <a class="el" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_lock_dynres()
-: <a class="el" href="remmina__protocol__widget_8h.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_map_event()
: <a class="el" href="remmina__protocol__widget_8c.html#a1585ea6908dd5c0a9b0f47d409916435">remmina_protocol_widget.c</a>
@@ -2643,12 +2649,12 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a97cba8208a4348446159bf465b3233f5">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_mpprogress()
-: <a class="el" href="remmina__protocol__widget_8c.html#a78b123eca6709bceeacda7d791a94bf1">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a78b123eca6709bceeacda7d791a94bf1">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a78b123eca6709bceeacda7d791a94bf1">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a78b123eca6709bceeacda7d791a94bf1">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_new()
-: <a class="el" href="remmina__protocol__widget_8h.html#a5c2137462d3168e90c812f1ce75a6e62">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a5c2137462d3168e90c812f1ce75a6e62">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a5c2137462d3168e90c812f1ce75a6e62">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a5c2137462d3168e90c812f1ce75a6e62">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_on_key_press()
: <a class="el" href="remmina__protocol__widget_8c.html#a1caaa7bea6ef53e5c7e8109f3d0814e1">remmina_protocol_widget.c</a>
@@ -2657,8 +2663,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__protocol__widget_8c.html#ac1f95eb1e31c05ae0bc4027496ceafb0">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_open_connection()
-: <a class="el" href="remmina__protocol__widget_8h.html#a6399c3828908e36ed6202b5599bd206b">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a6399c3828908e36ed6202b5599bd206b">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a6399c3828908e36ed6202b5599bd206b">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a6399c3828908e36ed6202b5599bd206b">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_open_connection_real()
: <a class="el" href="remmina__protocol__widget_8c.html#a76ad91e7f8648699f71c466e203aa6dd">remmina_protocol_widget.c</a>
@@ -2683,24 +2689,24 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__protocol__widget_8h.html#a78069d2e4c2773685126fc3127b26dae">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_hide()
-: <a class="el" href="remmina__protocol__widget_8h.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_new_certificate()
-: <a class="el" href="remmina__protocol__widget_8c.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_panel_question_yesno()
-: <a class="el" href="remmina__protocol__widget_8h.html#a9092c29f585fdabaf0ce7e865670053b">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a9092c29f585fdabaf0ce7e865670053b">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a9092c29f585fdabaf0ce7e865670053b">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a9092c29f585fdabaf0ce7e865670053b">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_show()
-: <a class="el" href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_panel_show_listen()
-: <a class="el" href="remmina__protocol__widget_8h.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_show_retry()
: <a class="el" href="remmina__protocol__widget_8c.html#a7ed85f4ea19e0660dbf46f4f3dc4b895">remmina_protocol_widget.c</a>
@@ -2711,24 +2717,24 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a480f842fac65440c367bf3c3d87d2601">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_plugin_screenshot()
-: <a class="el" href="remmina__protocol__widget_8c.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_query_feature_by_ref()
-: <a class="el" href="remmina__protocol__widget_8h.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_query_feature_by_type()
-: <a class="el" href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_register_hostkey()
-: <a class="el" href="remmina__protocol__widget_8h.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_save_cred()
-: <a class="el" href="remmina__protocol__widget_8c.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_send_clip_strokes()
: <a class="el" href="remmina__protocol__widget_8c.html#a2f5270c5e5007a8e95f4d460c11b2a06">remmina_protocol_widget.c</a>
@@ -2754,8 +2760,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_set_error()
-: <a class="el" href="remmina__protocol__widget_8h.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_set_expand()
: <a class="el" href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget.c</a>
@@ -2790,8 +2796,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a12eddf3428a53201ee0a2ec422d2fa4a">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_start_direct_tunnel()
-: <a class="el" href="remmina__protocol__widget_8c.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_start_reverse_tunnel()
: <a class="el" href="remmina__protocol__widget_8c.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget.c</a>
@@ -2809,8 +2815,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a2551dd6f53480609596d2695040fba5d">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_unmap_event()
-: <a class="el" href="remmina__protocol__widget_8h.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_update_align()
: <a class="el" href="remmina__protocol__widget_8c.html#aa88afa1e3f04974974a8be324b0a930e">remmina_protocol_widget.c</a>
@@ -2837,8 +2843,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__public_8h.html#a86940733e5b9cf77b276084e437dcac0">remmina_public.h</a>
</li>
<li>remmina_public_combo_get_active_text()
-: <a class="el" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#af1679d83834c8409f23e00c555d677fb">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#af1679d83834c8409f23e00c555d677fb">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public.c</a>
</li>
<li>remmina_public_create_combo()
: <a class="el" href="remmina__public_8c.html#ab4a593956dfe89aba3242a5c264a681f">remmina_public.c</a>
@@ -2865,12 +2871,12 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__public_8h.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public.h</a>
</li>
<li>remmina_public_get_keycode_for_keyval()
-: <a class="el" href="remmina__public_8c.html#a95f1d68c7ab3e2a6b158db45f63538fb">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#a95f1d68c7ab3e2a6b158db45f63538fb">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#a95f1d68c7ab3e2a6b158db45f63538fb">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#a95f1d68c7ab3e2a6b158db45f63538fb">remmina_public.c</a>
</li>
<li>remmina_public_get_modifier_for_keycode()
-: <a class="el" href="remmina__public_8c.html#a1fac51670815da6a72700a10866c179a">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#a1fac51670815da6a72700a10866c179a">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#a1fac51670815da6a72700a10866c179a">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#a1fac51670815da6a72700a10866c179a">remmina_public.c</a>
</li>
<li>remmina_public_get_server_port()
: <a class="el" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public.c</a>
@@ -2892,24 +2898,24 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__public_8h.html#a3031598a6e4f67d1519d8e5afba7da41">remmina_public.h</a>
</li>
<li>remmina_public_gtk_builder_new_from_resource()
-: <a class="el" href="remmina__public_8c.html#a4573e086e1ff8507eb9447b25bf11b92">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#a4573e086e1ff8507eb9447b25bf11b92">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#a4573e086e1ff8507eb9447b25bf11b92">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#a4573e086e1ff8507eb9447b25bf11b92">remmina_public.c</a>
</li>
<li>remmina_public_gtk_widget_reparent()
-: <a class="el" href="remmina__public_8h.html#ac0f480277a5929212d389b4bcdd56912">remmina_public.h</a>
-, <a class="el" href="remmina__public_8c.html#ac0f480277a5929212d389b4bcdd56912">remmina_public.c</a>
+: <a class="el" href="remmina__public_8c.html#ac0f480277a5929212d389b4bcdd56912">remmina_public.c</a>
+, <a class="el" href="remmina__public_8h.html#ac0f480277a5929212d389b4bcdd56912">remmina_public.h</a>
</li>
<li>remmina_public_load_combo_text_d()
: <a class="el" href="remmina__public_8c.html#aa5eacff7c9dab7457dd65525d01047f8">remmina_public.c</a>
, <a class="el" href="remmina__public_8h.html#aa5eacff7c9dab7457dd65525d01047f8">remmina_public.h</a>
</li>
<li>remmina_public_open_unix_sock()
-: <a class="el" href="remmina__public_8c.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public.c</a>
</li>
<li>remmina_public_open_xdisplay()
-: <a class="el" href="remmina__public_8h.html#a52656bbe00a83068f36337f449bdc767">remmina_public.h</a>
-, <a class="el" href="remmina__public_8c.html#a52656bbe00a83068f36337f449bdc767">remmina_public.c</a>
+: <a class="el" href="remmina__public_8c.html#a52656bbe00a83068f36337f449bdc767">remmina_public.c</a>
+, <a class="el" href="remmina__public_8h.html#a52656bbe00a83068f36337f449bdc767">remmina_public.h</a>
</li>
<li>remmina_public_popup_position()
: <a class="el" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public.c</a>
@@ -2924,12 +2930,12 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__public_8h.html#a893f0cfe2d694ab700975f4f427ee2f6">remmina_public.h</a>
</li>
<li>remmina_public_split_resolution_string()
-: <a class="el" href="remmina__public_8c.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public.c</a>
</li>
<li>remmina_public_str_replace()
-: <a class="el" href="remmina__public_8h.html#aea7547abe3a67e6126addc9ed91af640">remmina_public.h</a>
-, <a class="el" href="remmina__public_8c.html#aea7547abe3a67e6126addc9ed91af640">remmina_public.c</a>
+: <a class="el" href="remmina__public_8c.html#aea7547abe3a67e6126addc9ed91af640">remmina_public.c</a>
+, <a class="el" href="remmina__public_8h.html#aea7547abe3a67e6126addc9ed91af640">remmina_public.h</a>
</li>
<li>remmina_public_str_replace_in_place()
: <a class="el" href="remmina__public_8c.html#a8d7d9b3c8050545469b1af9a35b043a2">remmina_public.c</a>
@@ -2945,8 +2951,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__cliprdr_8h.html#a6c70042cad3c959e8a408402c9dcd5ff">rdp_cliprdr.h</a>
</li>
<li>remmina_rdp_clipboard_abort_client_format_data_request()
-: <a class="el" href="rdp__cliprdr_8c.html#a829aba669bedbb7cdcf9dcb4df8ca26b">rdp_cliprdr.c</a>
-, <a class="el" href="rdp__cliprdr_8h.html#a829aba669bedbb7cdcf9dcb4df8ca26b">rdp_cliprdr.h</a>
+: <a class="el" href="rdp__cliprdr_8h.html#a829aba669bedbb7cdcf9dcb4df8ca26b">rdp_cliprdr.h</a>
+, <a class="el" href="rdp__cliprdr_8c.html#a829aba669bedbb7cdcf9dcb4df8ca26b">rdp_cliprdr.c</a>
</li>
<li>remmina_rdp_clipboard_free()
: <a class="el" href="rdp__cliprdr_8h.html#a4da95b96bf2c86b8f4cc63dcafdd1365">rdp_cliprdr.h</a>
@@ -2960,15 +2966,15 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__cliprdr_8c.html#a48c10fa190a5f20e17d35b669c865209">rdp_cliprdr.c</a>
</li>
<li>remmina_rdp_cliprdr_detach_owner()
-: <a class="el" href="rdp__cliprdr_8c.html#a7d911246d8a6efed5a64b7ecd7b059bf">rdp_cliprdr.c</a>
-, <a class="el" href="rdp__cliprdr_8h.html#a7d911246d8a6efed5a64b7ecd7b059bf">rdp_cliprdr.h</a>
+: <a class="el" href="rdp__cliprdr_8h.html#a7d911246d8a6efed5a64b7ecd7b059bf">rdp_cliprdr.h</a>
+, <a class="el" href="rdp__cliprdr_8c.html#a7d911246d8a6efed5a64b7ecd7b059bf">rdp_cliprdr.c</a>
</li>
<li>remmina_rdp_cliprdr_empty_clipboard()
: <a class="el" href="rdp__cliprdr_8c.html#a719b6820f66508f8acb943a1bf1a495d">rdp_cliprdr.c</a>
</li>
<li>remmina_rdp_cliprdr_get_client_format_list()
-: <a class="el" href="rdp__cliprdr_8h.html#accb7cad54767b8f658b8ea438690ef4f">rdp_cliprdr.h</a>
-, <a class="el" href="rdp__cliprdr_8c.html#accb7cad54767b8f658b8ea438690ef4f">rdp_cliprdr.c</a>
+: <a class="el" href="rdp__cliprdr_8c.html#accb7cad54767b8f658b8ea438690ef4f">rdp_cliprdr.c</a>
+, <a class="el" href="rdp__cliprdr_8h.html#accb7cad54767b8f658b8ea438690ef4f">rdp_cliprdr.h</a>
</li>
<li>remmina_rdp_cliprdr_get_clipboard_data()
: <a class="el" href="rdp__cliprdr_8c.html#a1875ac25f73dd93e4b716746e7c6b8d5">rdp_cliprdr.c</a>
@@ -3047,8 +3053,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__event_8c.html#a35376ff50915de1c14285e6326bc943e">rdp_event.c</a>
</li>
<li>remmina_rdp_event_event_push()
-: <a class="el" href="rdp__plugin_8h.html#ad446d6471bddba97f8bfcee8c51e4580">rdp_plugin.h</a>
-, <a class="el" href="rdp__event_8c.html#ad446d6471bddba97f8bfcee8c51e4580">rdp_event.c</a>
+: <a class="el" href="rdp__event_8c.html#ad446d6471bddba97f8bfcee8c51e4580">rdp_event.c</a>
+, <a class="el" href="rdp__plugin_8h.html#ad446d6471bddba97f8bfcee8c51e4580">rdp_plugin.h</a>
</li>
<li>remmina_rdp_event_free_cursor()
: <a class="el" href="rdp__event_8c.html#a740d33b9c229ada638eeeebe2ffca461">rdp_event.c</a>
@@ -3057,8 +3063,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__event_8c.html#a40b4fd190055c10d5d2248a6eca5f50f">rdp_event.c</a>
</li>
<li>remmina_rdp_event_init()
-: <a class="el" href="rdp__event_8h.html#afba21c241e7abe9fe72f6e5aeeaa99cc">rdp_event.h</a>
-, <a class="el" href="rdp__event_8c.html#af3a991a02d35fb09c85f2e752a5393ca">rdp_event.c</a>
+: <a class="el" href="rdp__event_8c.html#af3a991a02d35fb09c85f2e752a5393ca">rdp_event.c</a>
+, <a class="el" href="rdp__event_8h.html#afba21c241e7abe9fe72f6e5aeeaa99cc">rdp_event.h</a>
</li>
<li>remmina_rdp_event_init_keymap()
: <a class="el" href="rdp__event_8c.html#a4eeb2bd828f9fae2c549f3ef8a1e20c0">rdp_event.c</a>
@@ -3092,12 +3098,12 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__event_8c.html#a9d63c3ac635001e62851ec4bc5fb7469">rdp_event.c</a>
</li>
<li>remmina_rdp_event_on_unmap()
-: <a class="el" href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">rdp_event.c</a>
-, <a class="el" href="rdp__event_8h.html#a393d4ec6673f6a9c2b71849c109facef">rdp_event.h</a>
+: <a class="el" href="rdp__event_8h.html#a393d4ec6673f6a9c2b71849c109facef">rdp_event.h</a>
+, <a class="el" href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">rdp_event.c</a>
</li>
<li>remmina_rdp_event_process_clipboard()
-: <a class="el" href="rdp__cliprdr_8h.html#ad4fad618198e7746ea1e4ebd01a9b173">rdp_cliprdr.h</a>
-, <a class="el" href="rdp__cliprdr_8c.html#ad4fad618198e7746ea1e4ebd01a9b173">rdp_cliprdr.c</a>
+: <a class="el" href="rdp__cliprdr_8c.html#ad4fad618198e7746ea1e4ebd01a9b173">rdp_cliprdr.c</a>
+, <a class="el" href="rdp__cliprdr_8h.html#ad4fad618198e7746ea1e4ebd01a9b173">rdp_cliprdr.h</a>
</li>
<li>remmina_rdp_event_process_event()
: <a class="el" href="rdp__event_8c.html#a5f5fcd2a5c81d0c8bec609e0428735c5">rdp_event.c</a>
@@ -3116,8 +3122,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="rdp__event_8h.html#ae445fd0a84c7c9414a177a69c86cf325">rdp_event.h</a>
</li>
<li>remmina_rdp_event_queue_ui_sync_retint()
-: <a class="el" href="rdp__event_8h.html#ab5fe43c1b1b77c39f118d2581942eb81">rdp_event.h</a>
-, <a class="el" href="rdp__event_8c.html#ab5fe43c1b1b77c39f118d2581942eb81">rdp_event.c</a>
+: <a class="el" href="rdp__event_8c.html#ab5fe43c1b1b77c39f118d2581942eb81">rdp_event.c</a>
+, <a class="el" href="rdp__event_8h.html#ab5fe43c1b1b77c39f118d2581942eb81">rdp_event.h</a>
</li>
<li>remmina_rdp_event_queue_ui_sync_retptr()
: <a class="el" href="rdp__event_8c.html#adaaf3de8342309cc52668f318a473350">rdp_event.c</a>
@@ -3139,8 +3145,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__event_8c.html#a080ab4a0a8f592bb5484202175beaaa5">rdp_event.c</a>
</li>
<li>remmina_rdp_event_send_delayed_monitor_layout()
-: <a class="el" href="rdp__event_8h.html#ac7c8d626470553c1659312697811dbfe">rdp_event.h</a>
-, <a class="el" href="rdp__event_8c.html#ac7c8d626470553c1659312697811dbfe">rdp_event.c</a>
+: <a class="el" href="rdp__event_8c.html#ac7c8d626470553c1659312697811dbfe">rdp_event.c</a>
+, <a class="el" href="rdp__event_8h.html#ac7c8d626470553c1659312697811dbfe">rdp_event.h</a>
</li>
<li>remmina_rdp_event_set_pointer_position()
: <a class="el" href="rdp__event_8c.html#a34c7d3a1bb411e84d3b4e30fcccc9cd8">rdp_event.c</a>
@@ -3171,8 +3177,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__event_8c.html#a6076424eb759c91ca9c8da59432c66d6">rdp_event.c</a>
</li>
<li>remmina_rdp_file_export()
-: <a class="el" href="rdp__file_8c.html#a0141f87575bf2b97219541b419ed467e">rdp_file.c</a>
-, <a class="el" href="rdp__file_8h.html#a0141f87575bf2b97219541b419ed467e">rdp_file.h</a>
+: <a class="el" href="rdp__file_8h.html#a0141f87575bf2b97219541b419ed467e">rdp_file.h</a>
+, <a class="el" href="rdp__file_8c.html#a0141f87575bf2b97219541b419ed467e">rdp_file.c</a>
</li>
<li>remmina_rdp_file_export_channel()
: <a class="el" href="rdp__file_8c.html#af8f66ae61f0a025b3f69cd8e08d2c229">rdp_file.c</a>
@@ -3223,16 +3229,16 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54">rdp_plugin.c</a>
</li>
<li>remmina_rdp_monitor_get()
-: <a class="el" href="rdp__monitor_8c.html#aa5969439ce0342765baea33fcf396940">rdp_monitor.c</a>
-, <a class="el" href="rdp__monitor_8h.html#a7536570aee98af77f038d82fe9f57ca6">rdp_monitor.h</a>
+: <a class="el" href="rdp__monitor_8h.html#a7536570aee98af77f038d82fe9f57ca6">rdp_monitor.h</a>
+, <a class="el" href="rdp__monitor_8c.html#aa5969439ce0342765baea33fcf396940">rdp_monitor.c</a>
</li>
<li>remmina_rdp_OnChannelConnectedEventHandler()
: <a class="el" href="rdp__channels_8h.html#a81be0bdb718bc47b5296698a7b47ce20">rdp_channels.h</a>
, <a class="el" href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">rdp_channels.c</a>
</li>
<li>remmina_rdp_OnChannelDisconnectedEventHandler()
-: <a class="el" href="rdp__channels_8c.html#a2d82ea9a38463d03c07271a356ccaec2">rdp_channels.c</a>
-, <a class="el" href="rdp__channels_8h.html#a2d82ea9a38463d03c07271a356ccaec2">rdp_channels.h</a>
+: <a class="el" href="rdp__channels_8h.html#a2d82ea9a38463d03c07271a356ccaec2">rdp_channels.h</a>
+, <a class="el" href="rdp__channels_8c.html#a2d82ea9a38463d03c07271a356ccaec2">rdp_channels.c</a>
</li>
<li>remmina_rdp_open_connection()
: <a class="el" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">rdp_plugin.c</a>
@@ -3392,8 +3398,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__ssh__plugin_8c.html#abb22b826bb7cf89a1af52b6b060edd4c">remmina_ssh_plugin.c</a>
</li>
<li>remmina_sftp_client_confirm_resume()
-: <a class="el" href="remmina__sftp__client_8c.html#a138904893cb9c7f6535b8dfc7ba17e33">remmina_sftp_client.c</a>
-, <a class="el" href="remmina__sftp__client_8h.html#a138904893cb9c7f6535b8dfc7ba17e33">remmina_sftp_client.h</a>
+: <a class="el" href="remmina__sftp__client_8h.html#a138904893cb9c7f6535b8dfc7ba17e33">remmina_sftp_client.h</a>
+, <a class="el" href="remmina__sftp__client_8c.html#a138904893cb9c7f6535b8dfc7ba17e33">remmina_sftp_client.c</a>
</li>
<li>remmina_sftp_client_destroy()
: <a class="el" href="remmina__sftp__client_8c.html#a396c50263fbc60962481655bdb7b24f2">remmina_sftp_client.c</a>
@@ -3405,8 +3411,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__sftp__client_8c.html#a52b86e14d8abd0a5b6ddeb464a22a5f0">remmina_sftp_client.c</a>
</li>
<li>remmina_sftp_client_new()
-: <a class="el" href="remmina__sftp__client_8c.html#ac2b4d83fed9c42029fee134684601aba">remmina_sftp_client.c</a>
-, <a class="el" href="remmina__sftp__client_8h.html#a0a3d678ad99a04a8b6aa3d958d60dc7d">remmina_sftp_client.h</a>
+: <a class="el" href="remmina__sftp__client_8h.html#a0a3d678ad99a04a8b6aa3d958d60dc7d">remmina_sftp_client.h</a>
+, <a class="el" href="remmina__sftp__client_8c.html#ac2b4d83fed9c42029fee134684601aba">remmina_sftp_client.c</a>
</li>
<li>remmina_sftp_client_on_canceltask()
: <a class="el" href="remmina__sftp__client_8c.html#ad2d75d3cee69addbb691a85ac864db0f">remmina_sftp_client.c</a>
@@ -3421,8 +3427,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__sftp__client_8c.html#a476effba1e0cf529dab3f75a501341ea">remmina_sftp_client.c</a>
</li>
<li>remmina_sftp_client_open()
-: <a class="el" href="remmina__sftp__client_8h.html#a9fb6d25e4676b2fa574f958a5ba271a1">remmina_sftp_client.h</a>
-, <a class="el" href="remmina__sftp__client_8c.html#a9fb6d25e4676b2fa574f958a5ba271a1">remmina_sftp_client.c</a>
+: <a class="el" href="remmina__sftp__client_8c.html#a9fb6d25e4676b2fa574f958a5ba271a1">remmina_sftp_client.c</a>
+, <a class="el" href="remmina__sftp__client_8h.html#a9fb6d25e4676b2fa574f958a5ba271a1">remmina_sftp_client.h</a>
</li>
<li>remmina_sftp_client_refresh()
: <a class="el" href="remmina__sftp__client_8c.html#ae87948f1c87c6eb6b16664665cac9a2c">remmina_sftp_client.c</a>
@@ -3488,16 +3494,16 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__sodium_8c.html#a17d17beeb57808af1c4299e3b4b94e9a">remmina_sodium.c</a>
</li>
<li>remmina_sodium_pwhash()
-: <a class="el" href="remmina__sodium_8h.html#ae661257deabb27ca05747be21aac253c">remmina_sodium.h</a>
-, <a class="el" href="remmina__sodium_8c.html#ae661257deabb27ca05747be21aac253c">remmina_sodium.c</a>
+: <a class="el" href="remmina__sodium_8c.html#ae661257deabb27ca05747be21aac253c">remmina_sodium.c</a>
+, <a class="el" href="remmina__sodium_8h.html#ae661257deabb27ca05747be21aac253c">remmina_sodium.h</a>
</li>
<li>remmina_sodium_pwhash_str()
-: <a class="el" href="remmina__sodium_8c.html#a42b49fa9a654cb061a02f52577171e1e">remmina_sodium.c</a>
-, <a class="el" href="remmina__sodium_8h.html#a42b49fa9a654cb061a02f52577171e1e">remmina_sodium.h</a>
+: <a class="el" href="remmina__sodium_8h.html#a42b49fa9a654cb061a02f52577171e1e">remmina_sodium.h</a>
+, <a class="el" href="remmina__sodium_8c.html#a42b49fa9a654cb061a02f52577171e1e">remmina_sodium.c</a>
</li>
<li>remmina_sodium_pwhash_str_verify()
-: <a class="el" href="remmina__sodium_8h.html#a6df48c8b8aafee07bfe41fb89581aa5f">remmina_sodium.h</a>
-, <a class="el" href="remmina__sodium_8c.html#a6df48c8b8aafee07bfe41fb89581aa5f">remmina_sodium.c</a>
+: <a class="el" href="remmina__sodium_8c.html#a6df48c8b8aafee07bfe41fb89581aa5f">remmina_sodium.c</a>
+, <a class="el" href="remmina__sodium_8h.html#a6df48c8b8aafee07bfe41fb89581aa5f">remmina_sodium.h</a>
</li>
<li>remmina_ssh_auth()
: <a class="el" href="remmina__ssh_8c.html#aad84c6609cb431d48121ae5e0902441b">remmina_ssh.c</a>
@@ -3556,8 +3562,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__ssh_8h.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh.h</a>
</li>
<li>remmina_ssh_identity_path()
-: <a class="el" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh.c</a>
-, <a class="el" href="remmina__ssh_8h.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh.h</a>
+: <a class="el" href="remmina__ssh_8h.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh.h</a>
+, <a class="el" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh.c</a>
</li>
<li>remmina_ssh_init_from_file()
: <a class="el" href="remmina__ssh_8h.html#a6815a78f65795cbc6795ca1c59e73102">remmina_ssh.h</a>
@@ -3575,19 +3581,19 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__ssh__plugin_8c.html#a0633a83ce0cbf7ed58d2b37ec6fd26b4">remmina_ssh_plugin.c</a>
</li>
<li>remmina_ssh_plugin_popup_menu()
-: <a class="el" href="remmina__ssh__plugin_8c.html#a3e8e08f2a9b05530e85962f9b8c556e9">remmina_ssh_plugin.c</a>
-, <a class="el" href="remmina__ssh__plugin_8h.html#a3e8e08f2a9b05530e85962f9b8c556e9">remmina_ssh_plugin.h</a>
+: <a class="el" href="remmina__ssh__plugin_8h.html#a3e8e08f2a9b05530e85962f9b8c556e9">remmina_ssh_plugin.h</a>
+, <a class="el" href="remmina__ssh__plugin_8c.html#a3e8e08f2a9b05530e85962f9b8c556e9">remmina_ssh_plugin.c</a>
</li>
<li>remmina_ssh_plugin_register()
-: <a class="el" href="remmina__ssh__plugin_8c.html#a6f594d157e09639e09b1f32a420da96c">remmina_ssh_plugin.c</a>
-, <a class="el" href="remmina__ssh__plugin_8h.html#af9f9487a10fb1a9c4b494ce3657359b9">remmina_ssh_plugin.h</a>
+: <a class="el" href="remmina__ssh__plugin_8h.html#af9f9487a10fb1a9c4b494ce3657359b9">remmina_ssh_plugin.h</a>
+, <a class="el" href="remmina__ssh__plugin_8c.html#a6f594d157e09639e09b1f32a420da96c">remmina_ssh_plugin.c</a>
</li>
<li>remmina_ssh_search_item()
: <a class="el" href="remmina__ssh_8c.html#af39f90e2343e62348226aed0d7496dda">remmina_ssh.c</a>
</li>
<li>remmina_ssh_set_application_error()
-: <a class="el" href="remmina__ssh_8h.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh.h</a>
-, <a class="el" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh.c</a>
+: <a class="el" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh.c</a>
+, <a class="el" href="remmina__ssh_8h.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh.h</a>
</li>
<li>remmina_ssh_set_error()
: <a class="el" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh.c</a>
@@ -3648,8 +3654,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__ssh_8c.html#ab8f07d5ab2ee8aa8423a11808b6cb100">remmina_ssh.c</a>
</li>
<li>remmina_stats_get_all()
-: <a class="el" href="remmina__stats_8c.html#a7398b36347e3621772776c466b565641">remmina_stats.c</a>
-, <a class="el" href="remmina__stats_8h.html#a7a1c9ab1abc1fdf78239d11b802843ae">remmina_stats.h</a>
+: <a class="el" href="remmina__stats_8h.html#a7a1c9ab1abc1fdf78239d11b802843ae">remmina_stats.h</a>
+, <a class="el" href="remmina__stats_8c.html#a7398b36347e3621772776c466b565641">remmina_stats.c</a>
</li>
<li>remmina_stats_get_gtk_backend()
: <a class="el" href="remmina__stats_8c.html#a73fbf1064af209f1f7272d737168971c">remmina_stats.c</a>
@@ -3685,19 +3691,19 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__stats_8c.html#ae596da7901fb3b45b7290a1d70b3ea3a">remmina_stats.c</a>
</li>
<li>remmina_string_array_add()
-: <a class="el" href="remmina__string__array_8c.html#a2aaacca7db4b86f836486cfb559398f0">remmina_string_array.c</a>
-, <a class="el" href="remmina__string__array_8h.html#a2aaacca7db4b86f836486cfb559398f0">remmina_string_array.h</a>
+: <a class="el" href="remmina__string__array_8h.html#a2aaacca7db4b86f836486cfb559398f0">remmina_string_array.h</a>
+, <a class="el" href="remmina__string__array_8c.html#a2aaacca7db4b86f836486cfb559398f0">remmina_string_array.c</a>
</li>
<li>remmina_string_array_compare_func()
: <a class="el" href="remmina__string__array_8c.html#a404140e205363c778476feb6f320f5f5">remmina_string_array.c</a>
</li>
<li>remmina_string_array_find()
-: <a class="el" href="remmina__string__array_8h.html#ab93a69850cfb4117c223a3f145ced986">remmina_string_array.h</a>
-, <a class="el" href="remmina__string__array_8c.html#ab93a69850cfb4117c223a3f145ced986">remmina_string_array.c</a>
+: <a class="el" href="remmina__string__array_8c.html#ab93a69850cfb4117c223a3f145ced986">remmina_string_array.c</a>
+, <a class="el" href="remmina__string__array_8h.html#ab93a69850cfb4117c223a3f145ced986">remmina_string_array.h</a>
</li>
<li>remmina_string_array_free()
-: <a class="el" href="remmina__string__array_8c.html#a8ab78913d299df665a408a8a5ec51bbe">remmina_string_array.c</a>
-, <a class="el" href="remmina__string__array_8h.html#a8ab78913d299df665a408a8a5ec51bbe">remmina_string_array.h</a>
+: <a class="el" href="remmina__string__array_8h.html#a8ab78913d299df665a408a8a5ec51bbe">remmina_string_array.h</a>
+, <a class="el" href="remmina__string__array_8c.html#a8ab78913d299df665a408a8a5ec51bbe">remmina_string_array.c</a>
</li>
<li>remmina_string_array_intersect()
: <a class="el" href="remmina__string__array_8h.html#abf64b35316d6e97f5c5001913b307308">remmina_string_array.h</a>
@@ -3716,24 +3722,24 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__string__array_8h.html#a7f1c8e427a25c2d5cede3952b1d0ad90">remmina_string_array.h</a>
</li>
<li>remmina_string_array_remove()
-: <a class="el" href="remmina__string__array_8h.html#a2a8a9753ebf61c9418a77ba3dd654ff3">remmina_string_array.h</a>
-, <a class="el" href="remmina__string__array_8c.html#a2a8a9753ebf61c9418a77ba3dd654ff3">remmina_string_array.c</a>
+: <a class="el" href="remmina__string__array_8c.html#a2a8a9753ebf61c9418a77ba3dd654ff3">remmina_string_array.c</a>
+, <a class="el" href="remmina__string__array_8h.html#a2a8a9753ebf61c9418a77ba3dd654ff3">remmina_string_array.h</a>
</li>
<li>remmina_string_array_remove_index()
-: <a class="el" href="remmina__string__array_8h.html#a40811c036e46f6544ab6c4cff445454b">remmina_string_array.h</a>
-, <a class="el" href="remmina__string__array_8c.html#a40811c036e46f6544ab6c4cff445454b">remmina_string_array.c</a>
+: <a class="el" href="remmina__string__array_8c.html#a40811c036e46f6544ab6c4cff445454b">remmina_string_array.c</a>
+, <a class="el" href="remmina__string__array_8h.html#a40811c036e46f6544ab6c4cff445454b">remmina_string_array.h</a>
</li>
<li>remmina_string_array_sort()
-: <a class="el" href="remmina__string__array_8h.html#a3eab4bae72ff130ad10ec8fc7364ce70">remmina_string_array.h</a>
-, <a class="el" href="remmina__string__array_8c.html#a3eab4bae72ff130ad10ec8fc7364ce70">remmina_string_array.c</a>
+: <a class="el" href="remmina__string__array_8c.html#a3eab4bae72ff130ad10ec8fc7364ce70">remmina_string_array.c</a>
+, <a class="el" href="remmina__string__array_8h.html#a3eab4bae72ff130ad10ec8fc7364ce70">remmina_string_array.h</a>
</li>
<li>remmina_string_array_to_string()
-: <a class="el" href="remmina__string__array_8c.html#a96f7bec7ce32de6cf5deadcd5aec51ec">remmina_string_array.c</a>
-, <a class="el" href="remmina__string__array_8h.html#a96f7bec7ce32de6cf5deadcd5aec51ec">remmina_string_array.h</a>
+: <a class="el" href="remmina__string__array_8h.html#a96f7bec7ce32de6cf5deadcd5aec51ec">remmina_string_array.h</a>
+, <a class="el" href="remmina__string__array_8c.html#a96f7bec7ce32de6cf5deadcd5aec51ec">remmina_string_array.c</a>
</li>
<li>remmina_string_list_get_text()
-: <a class="el" href="remmina__string__list_8c.html#a74058eac0af28c05a55d041103457aec">remmina_string_list.c</a>
-, <a class="el" href="remmina__string__list_8h.html#a74058eac0af28c05a55d041103457aec">remmina_string_list.h</a>
+: <a class="el" href="remmina__string__list_8h.html#a74058eac0af28c05a55d041103457aec">remmina_string_list.h</a>
+, <a class="el" href="remmina__string__list_8c.html#a74058eac0af28c05a55d041103457aec">remmina_string_list.c</a>
</li>
<li>remmina_string_list_init()
: <a class="el" href="remmina__string__list_8c.html#a3c7633dffb5b6bab089c71c44506d8ab">remmina_string_list.c</a>
@@ -3742,8 +3748,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__string__list_8c.html#a5709fae6d1ab7827d9537715791fa819">remmina_string_list.c</a>
</li>
<li>remmina_string_list_new()
-: <a class="el" href="remmina__string__list_8c.html#a11147c41297537effe55f18a63ce9f7e">remmina_string_list.c</a>
-, <a class="el" href="remmina__string__list_8h.html#a26bc63cdb43ed3fda2d86ac1d95a5029">remmina_string_list.h</a>
+: <a class="el" href="remmina__string__list_8h.html#a26bc63cdb43ed3fda2d86ac1d95a5029">remmina_string_list.h</a>
+, <a class="el" href="remmina__string__list_8c.html#a11147c41297537effe55f18a63ce9f7e">remmina_string_list.c</a>
</li>
<li>remmina_string_list_on_action_add()
: <a class="el" href="remmina__string__list_8c.html#a4f02ba383d1c5376606dd494771d5a1b">remmina_string_list.c</a>
@@ -3765,8 +3771,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__string__list_8h.html#ab1bacc097f59c20b477d954bb863a5e0">remmina_string_list.h</a>
</li>
<li>remmina_string_list_set_titles()
-: <a class="el" href="remmina__string__list_8c.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list.c</a>
-, <a class="el" href="remmina__string__list_8h.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list.h</a>
+: <a class="el" href="remmina__string__list_8h.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list.h</a>
+, <a class="el" href="remmina__string__list_8c.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list.c</a>
</li>
<li>remmina_string_list_set_validation_func()
: <a class="el" href="remmina__string__list_8h.html#a500b85eafd23280f998d2980d1eba80e">remmina_string_list.h</a>
@@ -3776,16 +3782,16 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__string__list_8c.html#a777917055c80821e9bde6ac8fd06e2ff">remmina_string_list.c</a>
</li>
<li>remmina_sysinfo_get_gnome_shell_version()
-: <a class="el" href="remmina__sysinfo_8c.html#a79fd36823613c320001f0cdd2a97490f">remmina_sysinfo.c</a>
-, <a class="el" href="remmina__sysinfo_8h.html#a9f1ea6410d45aaf5603439a5919aa1cb">remmina_sysinfo.h</a>
+: <a class="el" href="remmina__sysinfo_8h.html#a9f1ea6410d45aaf5603439a5919aa1cb">remmina_sysinfo.h</a>
+, <a class="el" href="remmina__sysinfo_8c.html#a79fd36823613c320001f0cdd2a97490f">remmina_sysinfo.c</a>
</li>
<li>remmina_sysinfo_get_wm_name()
-: <a class="el" href="remmina__sysinfo_8c.html#ae4441d62bb4075d1618b5750fea064b4">remmina_sysinfo.c</a>
-, <a class="el" href="remmina__sysinfo_8h.html#a5e08ab3a66f27ada8e700ae42a181b6a">remmina_sysinfo.h</a>
+: <a class="el" href="remmina__sysinfo_8h.html#a5e08ab3a66f27ada8e700ae42a181b6a">remmina_sysinfo.h</a>
+, <a class="el" href="remmina__sysinfo_8c.html#ae4441d62bb4075d1618b5750fea064b4">remmina_sysinfo.c</a>
</li>
<li>remmina_sysinfo_is_appindicator_available()
-: <a class="el" href="remmina__sysinfo_8h.html#a9e89ac64e13b47a651554d6a77af6b23">remmina_sysinfo.h</a>
-, <a class="el" href="remmina__sysinfo_8c.html#ae6ecf91edb905f3b2b39e33e05325590">remmina_sysinfo.c</a>
+: <a class="el" href="remmina__sysinfo_8c.html#ae6ecf91edb905f3b2b39e33e05325590">remmina_sysinfo.c</a>
+, <a class="el" href="remmina__sysinfo_8h.html#a9e89ac64e13b47a651554d6a77af6b23">remmina_sysinfo.h</a>
</li>
<li>remmina_tp_channel_handler_accept()
: <a class="el" href="telepathy__channel__handler_8c.html#a4ede5d9d191e9d1b906054429a36e1bb">telepathy_channel_handler.c</a>
@@ -3837,8 +3843,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="telepathy__handler_8c.html#a74b0c331f63ae06d690d26a9ab6aa67c">telepathy_handler.c</a>
</li>
<li>remmina_tp_handler_new()
-: <a class="el" href="telepathy__handler_8h.html#a9a0d7f717ce6b2d808b18d5da290f3d6">telepathy_handler.h</a>
-, <a class="el" href="telepathy__handler_8c.html#a9a0d7f717ce6b2d808b18d5da290f3d6">telepathy_handler.c</a>
+: <a class="el" href="telepathy__handler_8c.html#a9a0d7f717ce6b2d808b18d5da290f3d6">telepathy_handler.c</a>
+, <a class="el" href="telepathy__handler_8h.html#a9a0d7f717ce6b2d808b18d5da290f3d6">telepathy_handler.h</a>
</li>
<li>remmina_tp_handler_register()
: <a class="el" href="telepathy__handler_8c.html#ae71fa1e8591ba79daedb9ad8bc5714c9">telepathy_handler.c</a>
@@ -3847,8 +3853,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__unlock_8c.html#ac6e3a59f765b6d8012cb61005f1a3d18">remmina_unlock.c</a>
</li>
<li>remmina_unlock_new()
-: <a class="el" href="remmina__unlock_8h.html#a65839c333c02d3c1d7a4aad5b1098ef7">remmina_unlock.h</a>
-, <a class="el" href="remmina__unlock_8c.html#a81e79e5c1c230b7e2bf27b2457801d4e">remmina_unlock.c</a>
+: <a class="el" href="remmina__unlock_8c.html#a81e79e5c1c230b7e2bf27b2457801d4e">remmina_unlock.c</a>
+, <a class="el" href="remmina__unlock_8h.html#a65839c333c02d3c1d7a4aad5b1098ef7">remmina_unlock.h</a>
</li>
<li>remmina_unlock_timer_destroy()
: <a class="el" href="remmina__unlock_8c.html#af24c3977f6a1806914d22fead301a0cd">remmina_unlock.c</a>
@@ -3863,40 +3869,40 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__unlock_8c.html#a10e43559c46ea3ba409c0b97a43c93b3">remmina_unlock.c</a>
</li>
<li>remmina_utils_get_etc_release()
-: <a class="el" href="remmina__utils_8c.html#a54cee350c4ecc6e77af835c4ba90df4c">remmina_utils.c</a>
-, <a class="el" href="remmina__utils_8h.html#a54cee350c4ecc6e77af835c4ba90df4c">remmina_utils.h</a>
+: <a class="el" href="remmina__utils_8h.html#a54cee350c4ecc6e77af835c4ba90df4c">remmina_utils.h</a>
+, <a class="el" href="remmina__utils_8c.html#a54cee350c4ecc6e77af835c4ba90df4c">remmina_utils.c</a>
</li>
<li>remmina_utils_get_kernel_arch()
: <a class="el" href="remmina__utils_8h.html#a116e7cd4565386fe531d3a6d1a3d3730">remmina_utils.h</a>
, <a class="el" href="remmina__utils_8c.html#a116e7cd4565386fe531d3a6d1a3d3730">remmina_utils.c</a>
</li>
<li>remmina_utils_get_kernel_name()
-: <a class="el" href="remmina__utils_8c.html#abfc722d07d9936711794411bfbed0522">remmina_utils.c</a>
-, <a class="el" href="remmina__utils_8h.html#abfc722d07d9936711794411bfbed0522">remmina_utils.h</a>
+: <a class="el" href="remmina__utils_8h.html#abfc722d07d9936711794411bfbed0522">remmina_utils.h</a>
+, <a class="el" href="remmina__utils_8c.html#abfc722d07d9936711794411bfbed0522">remmina_utils.c</a>
</li>
<li>remmina_utils_get_kernel_release()
: <a class="el" href="remmina__utils_8c.html#a57603aa88df56e77e1a6de0f215f21aa">remmina_utils.c</a>
, <a class="el" href="remmina__utils_8h.html#a57603aa88df56e77e1a6de0f215f21aa">remmina_utils.h</a>
</li>
<li>remmina_utils_get_lang()
-: <a class="el" href="remmina__utils_8c.html#a0f10e190a6dd212fcb0cf36ce81c8324">remmina_utils.c</a>
-, <a class="el" href="remmina__utils_8h.html#a0f10e190a6dd212fcb0cf36ce81c8324">remmina_utils.h</a>
+: <a class="el" href="remmina__utils_8h.html#a0f10e190a6dd212fcb0cf36ce81c8324">remmina_utils.h</a>
+, <a class="el" href="remmina__utils_8c.html#a0f10e190a6dd212fcb0cf36ce81c8324">remmina_utils.c</a>
</li>
<li>remmina_utils_get_lsb_codename()
-: <a class="el" href="remmina__utils_8h.html#a2b4dbb0da7c8ba4bd86877097b85d10c">remmina_utils.h</a>
-, <a class="el" href="remmina__utils_8c.html#a2b4dbb0da7c8ba4bd86877097b85d10c">remmina_utils.c</a>
+: <a class="el" href="remmina__utils_8c.html#a2b4dbb0da7c8ba4bd86877097b85d10c">remmina_utils.c</a>
+, <a class="el" href="remmina__utils_8h.html#a2b4dbb0da7c8ba4bd86877097b85d10c">remmina_utils.h</a>
</li>
<li>remmina_utils_get_lsb_description()
-: <a class="el" href="remmina__utils_8c.html#ac00cb21c5cb5efcf7afc6eeae2147a75">remmina_utils.c</a>
-, <a class="el" href="remmina__utils_8h.html#ac00cb21c5cb5efcf7afc6eeae2147a75">remmina_utils.h</a>
+: <a class="el" href="remmina__utils_8h.html#ac00cb21c5cb5efcf7afc6eeae2147a75">remmina_utils.h</a>
+, <a class="el" href="remmina__utils_8c.html#ac00cb21c5cb5efcf7afc6eeae2147a75">remmina_utils.c</a>
</li>
<li>remmina_utils_get_lsb_id()
-: <a class="el" href="remmina__utils_8h.html#aa768b6fe171695d212da4c6eaf74cf22">remmina_utils.h</a>
-, <a class="el" href="remmina__utils_8c.html#aa768b6fe171695d212da4c6eaf74cf22">remmina_utils.c</a>
+: <a class="el" href="remmina__utils_8c.html#aa768b6fe171695d212da4c6eaf74cf22">remmina_utils.c</a>
+, <a class="el" href="remmina__utils_8h.html#aa768b6fe171695d212da4c6eaf74cf22">remmina_utils.h</a>
</li>
<li>remmina_utils_get_lsb_release()
-: <a class="el" href="remmina__utils_8h.html#a5ee50df5d7585d229a154a712c9161ca">remmina_utils.h</a>
-, <a class="el" href="remmina__utils_8c.html#a5ee50df5d7585d229a154a712c9161ca">remmina_utils.c</a>
+: <a class="el" href="remmina__utils_8c.html#a5ee50df5d7585d229a154a712c9161ca">remmina_utils.c</a>
+, <a class="el" href="remmina__utils_8h.html#a5ee50df5d7585d229a154a712c9161ca">remmina_utils.h</a>
</li>
<li>remmina_utils_get_os_info()
: <a class="el" href="remmina__utils_8c.html#af1acfeca84e3efd47ab1ef8365f94f99">remmina_utils.c</a>
@@ -3910,35 +3916,35 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
, <a class="el" href="remmina__utils_8c.html#a75eb5f79df692dfe4db221d03a5fa355">remmina_utils.c</a>
</li>
<li>remmina_utils_string_replace()
-: <a class="el" href="remmina__utils_8c.html#aa6859a61aa28f46591750c9afdef66f4">remmina_utils.c</a>
-, <a class="el" href="remmina__utils_8h.html#aa6859a61aa28f46591750c9afdef66f4">remmina_utils.h</a>
+: <a class="el" href="remmina__utils_8h.html#aa6859a61aa28f46591750c9afdef66f4">remmina_utils.h</a>
+, <a class="el" href="remmina__utils_8c.html#aa6859a61aa28f46591750c9afdef66f4">remmina_utils.c</a>
</li>
<li>remmina_utils_string_replace_all()
: <a class="el" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils.c</a>
, <a class="el" href="remmina__utils_8h.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils.h</a>
</li>
<li>remmina_utils_string_strip()
-: <a class="el" href="remmina__utils_8c.html#afe83bd0997a1054045e17d3f66c8bb0d">remmina_utils.c</a>
-, <a class="el" href="remmina__utils_8h.html#afe83bd0997a1054045e17d3f66c8bb0d">remmina_utils.h</a>
+: <a class="el" href="remmina__utils_8h.html#afe83bd0997a1054045e17d3f66c8bb0d">remmina_utils.h</a>
+, <a class="el" href="remmina__utils_8c.html#afe83bd0997a1054045e17d3f66c8bb0d">remmina_utils.c</a>
</li>
<li>remmina_utils_strpos()
: <a class="el" href="remmina__utils_8c.html#ae4318060ee81f8fbd907904892dd71d3">remmina_utils.c</a>
</li>
<li>remmina_widget_pool_count()
-: <a class="el" href="remmina__widget__pool_8h.html#af888e4e0c2d590e61c72608a7482f18a">remmina_widget_pool.h</a>
-, <a class="el" href="remmina__widget__pool_8c.html#a9cbb5b8d01a6d44ba7b46434467c02f8">remmina_widget_pool.c</a>
+: <a class="el" href="remmina__widget__pool_8c.html#a9cbb5b8d01a6d44ba7b46434467c02f8">remmina_widget_pool.c</a>
+, <a class="el" href="remmina__widget__pool_8h.html#af888e4e0c2d590e61c72608a7482f18a">remmina_widget_pool.h</a>
</li>
<li>remmina_widget_pool_find()
: <a class="el" href="remmina__widget__pool_8h.html#ab776b24a3b829a1d5dd7974cb8582c05">remmina_widget_pool.h</a>
, <a class="el" href="remmina__widget__pool_8c.html#ab776b24a3b829a1d5dd7974cb8582c05">remmina_widget_pool.c</a>
</li>
<li>remmina_widget_pool_find_by_window()
-: <a class="el" href="remmina__widget__pool_8c.html#a0a6a2069cdbbb920fb09f95bec3e997e">remmina_widget_pool.c</a>
-, <a class="el" href="remmina__widget__pool_8h.html#a0a6a2069cdbbb920fb09f95bec3e997e">remmina_widget_pool.h</a>
+: <a class="el" href="remmina__widget__pool_8h.html#a0a6a2069cdbbb920fb09f95bec3e997e">remmina_widget_pool.h</a>
+, <a class="el" href="remmina__widget__pool_8c.html#a0a6a2069cdbbb920fb09f95bec3e997e">remmina_widget_pool.c</a>
</li>
<li>remmina_widget_pool_foreach()
-: <a class="el" href="remmina__widget__pool_8c.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool.c</a>
-, <a class="el" href="remmina__widget__pool_8h.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool.h</a>
+: <a class="el" href="remmina__widget__pool_8h.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool.h</a>
+, <a class="el" href="remmina__widget__pool_8c.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool.c</a>
</li>
<li>remmina_widget_pool_init()
: <a class="el" href="remmina__widget__pool_8h.html#aadc178f8f991ba939827d235aae8ad09">remmina_widget_pool.h</a>
@@ -3948,8 +3954,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="remmina__widget__pool_8c.html#aa5fd17580202843eab40cabb258d2664">remmina_widget_pool.c</a>
</li>
<li>remmina_widget_pool_register()
-: <a class="el" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool.c</a>
-, <a class="el" href="remmina__widget__pool_8h.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool.h</a>
+: <a class="el" href="remmina__widget__pool_8h.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool.h</a>
+, <a class="el" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool.c</a>
</li>
<li>remmina_widget_pool_register_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">python_wrapper_remmina.c</a>
@@ -4045,8 +4051,8 @@ $(document).ready(function(){initNavTree('globals_func_r.html','');});
: <a class="el" href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29">rdp_plugin.c</a>
</li>
<li>rf_register_graphics()
-: <a class="el" href="rdp__graphics_8c.html#a95732c40c35499f3440715b6526279b1">rdp_graphics.c</a>
-, <a class="el" href="rdp__graphics_8h.html#a95732c40c35499f3440715b6526279b1">rdp_graphics.h</a>
+: <a class="el" href="rdp__graphics_8h.html#a95732c40c35499f3440715b6526279b1">rdp_graphics.h</a>
+, <a class="el" href="rdp__graphics_8c.html#a95732c40c35499f3440715b6526279b1">rdp_graphics.c</a>
</li>
<li>rf_uninit()
: <a class="el" href="rdp__plugin_8h.html#ab113687b2d454d2ef5865de40a9cabbb">rdp_plugin.h</a>
diff --git a/public/globals_r.html b/public/globals_r.html
index 0efbc4918..afde70a76 100644
--- a/public/globals_r.html
+++ b/public/globals_r.html
@@ -802,6 +802,9 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__file_8c.html#a52a0986eaf54c9e606ce9cdf8bb57e60">remmina_file.c</a>
, <a class="el" href="remmina__file_8h.html#a52a0986eaf54c9e606ce9cdf8bb57e60">remmina_file.h</a>
</li>
+<li>remmina_file_editor_assistance_enabled_check_on_toggled()
+: <a class="el" href="remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6">remmina_file_editor.c</a>
+</li>
<li>remmina_file_editor_browse_avahi()
: <a class="el" href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05">remmina_file_editor.c</a>
</li>
@@ -821,6 +824,9 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
<li>remmina_file_editor_create_all_settings()
: <a class="el" href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38">remmina_file_editor.c</a>
</li>
+<li>remmina_file_editor_create_assistance()
+: <a class="el" href="remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586">remmina_file_editor.c</a>
+</li>
<li>remmina_file_editor_create_behavior_tab()
: <a class="el" href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c">remmina_file_editor.c</a>
</li>
@@ -1422,12 +1428,12 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__icon_8c.html#ac424cc450aa98c2a0fe2494cddff48a6">remmina_icon.c</a>
</li>
<li>remmina_icon_init()
-: <a class="el" href="remmina__icon_8c.html#afbd7758d1d43c61a014b7ef00f11fa58">remmina_icon.c</a>
-, <a class="el" href="remmina__icon_8h.html#a741c81815e562f40672c4485172306d6">remmina_icon.h</a>
+: <a class="el" href="remmina__icon_8h.html#a741c81815e562f40672c4485172306d6">remmina_icon.h</a>
+, <a class="el" href="remmina__icon_8c.html#afbd7758d1d43c61a014b7ef00f11fa58">remmina_icon.c</a>
</li>
<li>remmina_icon_is_autostart()
-: <a class="el" href="remmina__icon_8h.html#ae477ccd85ab1d878d243aed7fa5e48ae">remmina_icon.h</a>
-, <a class="el" href="remmina__icon_8c.html#ae477ccd85ab1d878d243aed7fa5e48ae">remmina_icon.c</a>
+: <a class="el" href="remmina__icon_8c.html#ae477ccd85ab1d878d243aed7fa5e48ae">remmina_icon.c</a>
+, <a class="el" href="remmina__icon_8h.html#ae477ccd85ab1d878d243aed7fa5e48ae">remmina_icon.h</a>
</li>
<li>remmina_icon_is_available()
: <a class="el" href="remmina__icon_8c.html#a42f087b679b43b8a1d36cd9e9781a8b6">remmina_icon.c</a>
@@ -2758,8 +2764,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__pref_8c.html#a7829d615a6c5b8a6f6c759043fb2ac81">remmina_pref.c</a>
</li>
<li>remmina_pref_file_load_colors()
-: <a class="el" href="remmina__pref_8h.html#ad6424eb32c9549eb3e26f167dc58c218">remmina_pref.h</a>
-, <a class="el" href="remmina__pref_8c.html#ad6424eb32c9549eb3e26f167dc58c218">remmina_pref.c</a>
+: <a class="el" href="remmina__pref_8c.html#ad6424eb32c9549eb3e26f167dc58c218">remmina_pref.c</a>
+, <a class="el" href="remmina__pref_8h.html#ad6424eb32c9549eb3e26f167dc58c218">remmina_pref.h</a>
</li>
<li>remmina_pref_gen_secret()
: <a class="el" href="remmina__pref_8c.html#afc609e167e078f1991320f79e9f9157c">remmina_pref.c</a>
@@ -2797,24 +2803,24 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">python_wrapper_remmina.c</a>
</li>
<li>remmina_pref_get_ssh_tcp_keepcnt()
-: <a class="el" href="remmina__pref_8h.html#a781431450dfcf639c8dd96701be3795b">remmina_pref.h</a>
-, <a class="el" href="remmina__pref_8c.html#a781431450dfcf639c8dd96701be3795b">remmina_pref.c</a>
+: <a class="el" href="remmina__pref_8c.html#a781431450dfcf639c8dd96701be3795b">remmina_pref.c</a>
+, <a class="el" href="remmina__pref_8h.html#a781431450dfcf639c8dd96701be3795b">remmina_pref.h</a>
</li>
<li>remmina_pref_get_ssh_tcp_keepidle()
-: <a class="el" href="remmina__pref_8c.html#a5ed143a13f2a3393e44fd5b2c4fee4be">remmina_pref.c</a>
-, <a class="el" href="remmina__pref_8h.html#a5ed143a13f2a3393e44fd5b2c4fee4be">remmina_pref.h</a>
+: <a class="el" href="remmina__pref_8h.html#a5ed143a13f2a3393e44fd5b2c4fee4be">remmina_pref.h</a>
+, <a class="el" href="remmina__pref_8c.html#a5ed143a13f2a3393e44fd5b2c4fee4be">remmina_pref.c</a>
</li>
<li>remmina_pref_get_ssh_tcp_keepintvl()
-: <a class="el" href="remmina__pref_8h.html#ad7040b17df053835bfb21eb24ae10414">remmina_pref.h</a>
-, <a class="el" href="remmina__pref_8c.html#ad7040b17df053835bfb21eb24ae10414">remmina_pref.c</a>
+: <a class="el" href="remmina__pref_8c.html#ad7040b17df053835bfb21eb24ae10414">remmina_pref.c</a>
+, <a class="el" href="remmina__pref_8h.html#ad7040b17df053835bfb21eb24ae10414">remmina_pref.h</a>
</li>
<li>remmina_pref_get_ssh_tcp_usrtimeout()
-: <a class="el" href="remmina__pref_8c.html#a1a695b64e75d6f49de220dc777e57714">remmina_pref.c</a>
-, <a class="el" href="remmina__pref_8h.html#a1a695b64e75d6f49de220dc777e57714">remmina_pref.h</a>
+: <a class="el" href="remmina__pref_8h.html#a1a695b64e75d6f49de220dc777e57714">remmina_pref.h</a>
+, <a class="el" href="remmina__pref_8c.html#a1a695b64e75d6f49de220dc777e57714">remmina_pref.c</a>
</li>
<li>remmina_pref_get_sshtunnel_port()
-: <a class="el" href="remmina__pref_8h.html#a6982152fd0492586819ce1760a853e99">remmina_pref.h</a>
-, <a class="el" href="remmina__pref_8c.html#a6982152fd0492586819ce1760a853e99">remmina_pref.c</a>
+: <a class="el" href="remmina__pref_8c.html#a6982152fd0492586819ce1760a853e99">remmina_pref.c</a>
+, <a class="el" href="remmina__pref_8h.html#a6982152fd0492586819ce1760a853e99">remmina_pref.h</a>
</li>
<li>remmina_pref_get_sshtunnel_port_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">python_wrapper_remmina.c</a>
@@ -2827,8 +2833,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">python_wrapper_remmina.c</a>
</li>
<li>remmina_pref_init()
-: <a class="el" href="remmina__pref_8c.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref.c</a>
-, <a class="el" href="remmina__pref_8h.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref.h</a>
+: <a class="el" href="remmina__pref_8h.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref.h</a>
+, <a class="el" href="remmina__pref_8c.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref.c</a>
</li>
<li>remmina_pref_init_keymap()
: <a class="el" href="remmina__pref_8c.html#aed7f3859d4306419932df15131987355">remmina_pref.c</a>
@@ -2845,12 +2851,12 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">python_wrapper_remmina.c</a>
</li>
<li>remmina_pref_keymap_get_table()
-: <a class="el" href="remmina__pref_8c.html#aa263ec4481bcac099b7a294fe42179b9">remmina_pref.c</a>
-, <a class="el" href="remmina__pref_8h.html#aa263ec4481bcac099b7a294fe42179b9">remmina_pref.h</a>
+: <a class="el" href="remmina__pref_8h.html#aa263ec4481bcac099b7a294fe42179b9">remmina_pref.h</a>
+, <a class="el" href="remmina__pref_8c.html#aa263ec4481bcac099b7a294fe42179b9">remmina_pref.c</a>
</li>
<li>remmina_pref_keymap_groups()
-: <a class="el" href="remmina__pref_8h.html#a745bbef1d48a7462f8db997821742395">remmina_pref.h</a>
-, <a class="el" href="remmina__pref_8c.html#a745bbef1d48a7462f8db997821742395">remmina_pref.c</a>
+: <a class="el" href="remmina__pref_8c.html#a745bbef1d48a7462f8db997821742395">remmina_pref.c</a>
+, <a class="el" href="remmina__pref_8h.html#a745bbef1d48a7462f8db997821742395">remmina_pref.h</a>
</li>
<li>remmina_pref_on_button_keystrokes_clicked()
: <a class="el" href="remmina__pref__dialog_8c.html#a0c5f28eea2fe32297da5f7833df7b131">remmina_pref_dialog.c</a>
@@ -2947,6 +2953,9 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
<li>remmina_protocol_send_keytrokes_wrapper()
: <a class="el" href="python__wrapper__protocol_8c.html#a162c9587302a7a4788f3c45329f56f0c">python_wrapper_protocol.c</a>
</li>
+<li>REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE
+: <a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">types.h</a>
+</li>
<li>REMMINA_PROTOCOL_SETTING_TYPE_CHECK
: <a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">types.h</a>
</li>
@@ -3012,8 +3021,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_call_feature_by_type()
-: <a class="el" href="remmina__protocol__widget_8c.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_chat_close()
: <a class="el" href="remmina__protocol__widget_8c.html#a4a3a9ba7422fc302b0b412ac771c9953">remmina_protocol_widget.c</a>
@@ -3027,8 +3036,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a66263e6e7da79357ceb80d32b191d9f2">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_chat_receive()
-: <a class="el" href="remmina__protocol__widget_8h.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_class_init()
: <a class="el" href="remmina__protocol__widget_8c.html#a8c125f58aa4fac0e4c88f293e4d4dd74">remmina_protocol_widget.c</a>
@@ -3058,8 +3067,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_cacert()
-: <a class="el" href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_cacrl()
: <a class="el" href="remmina__protocol__widget_8c.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget.c</a>
@@ -3074,24 +3083,24 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a08d312825fc0de9f9286279d99f763a1">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_current_scale_mode()
-: <a class="el" href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_domain()
: <a class="el" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_error_message()
-: <a class="el" href="remmina__protocol__widget_8c.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_expand()
: <a class="el" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_features()
-: <a class="el" href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_file()
: <a class="el" href="remmina__protocol__widget_8c.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget.c</a>
@@ -3106,16 +3115,16 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_multimon()
-: <a class="el" href="remmina__protocol__widget_8c.html#abdf99138612d02bc3921b0b77bdc89cb">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#abdf99138612d02bc3921b0b77bdc89cb">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#abdf99138612d02bc3921b0b77bdc89cb">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#abdf99138612d02bc3921b0b77bdc89cb">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_name()
: <a class="el" href="remmina__protocol__widget_8c.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_get_password()
-: <a class="el" href="remmina__protocol__widget_8c.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_get_profile_remote_height()
: <a class="el" href="remmina__protocol__widget_8c.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget.c</a>
@@ -3147,16 +3156,16 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_grab_focus()
-: <a class="el" href="remmina__protocol__widget_8h.html#a290eb68f0e86de1b7b82e2d98a1494d1">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a290eb68f0e86de1b7b82e2d98a1494d1">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a290eb68f0e86de1b7b82e2d98a1494d1">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a290eb68f0e86de1b7b82e2d98a1494d1">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_gtkviewport()
: <a class="el" href="remmina__protocol__widget_8c.html#a2067c19b160eb43bddda6c6c6e8d6045">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#a2067c19b160eb43bddda6c6c6e8d6045">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_has_error()
-: <a class="el" href="remmina__protocol__widget_8h.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_init()
: <a class="el" href="remmina__protocol__widget_8c.html#a0fcec40aae330e115d1bae66aeefb3df">remmina_protocol_widget.c</a>
@@ -3165,8 +3174,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__protocol__widget_8c.html#a5567a5c55d9a880d174faabafcd15fa3">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_is_closed()
-: <a class="el" href="remmina__protocol__widget_8h.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_lock_dynres()
: <a class="el" href="remmina__protocol__widget_8c.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget.c</a>
@@ -3181,8 +3190,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a97cba8208a4348446159bf465b3233f5">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_mpprogress()
-: <a class="el" href="remmina__protocol__widget_8h.html#a78b123eca6709bceeacda7d791a94bf1">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a78b123eca6709bceeacda7d791a94bf1">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a78b123eca6709bceeacda7d791a94bf1">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a78b123eca6709bceeacda7d791a94bf1">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_new()
: <a class="el" href="remmina__protocol__widget_8c.html#a5c2137462d3168e90c812f1ce75a6e62">remmina_protocol_widget.c</a>
@@ -3210,8 +3219,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#ad637ec849c497e4a0d4c723396aa6fba">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_authx509()
-: <a class="el" href="remmina__protocol__widget_8c.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_panel_changed_certificate()
: <a class="el" href="remmina__protocol__widget_8c.html#acf75fd4bac28a3d53da064b2905f23c1">remmina_protocol_widget.c</a>
@@ -3225,16 +3234,16 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_new_certificate()
-: <a class="el" href="remmina__protocol__widget_8h.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_question_yesno()
: <a class="el" href="remmina__protocol__widget_8c.html#a9092c29f585fdabaf0ce7e865670053b">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#a9092c29f585fdabaf0ce7e865670053b">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_show()
-: <a class="el" href="remmina__protocol__widget_8h.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_panel_show_listen()
: <a class="el" href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget.c</a>
@@ -3249,24 +3258,24 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a480f842fac65440c367bf3c3d87d2601">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_plugin_screenshot()
-: <a class="el" href="remmina__protocol__widget_8h.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_query_feature_by_ref()
: <a class="el" href="remmina__protocol__widget_8c.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_query_feature_by_type()
-: <a class="el" href="remmina__protocol__widget_8h.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_register_hostkey()
: <a class="el" href="remmina__protocol__widget_8c.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_save_cred()
-: <a class="el" href="remmina__protocol__widget_8h.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget.h</a>
</li>
<li>REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES
: <a class="el" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">types.h</a>
@@ -3285,24 +3294,24 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#acf40f566116cf43af26891cd37af4eb1">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_send_keys_signals()
-: <a class="el" href="remmina__protocol__widget_8h.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_send_keystrokes()
: <a class="el" href="remmina__protocol__widget_8c.html#affb2413c00f0681fe08f90523f7e1471">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#affb2413c00f0681fe08f90523f7e1471">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_set_current_scale_mode()
-: <a class="el" href="remmina__protocol__widget_8h.html#ad6e2d00646e8268aa0e8bbe31b77db48">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#ad6e2d00646e8268aa0e8bbe31b77db48">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#ad6e2d00646e8268aa0e8bbe31b77db48">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#ad6e2d00646e8268aa0e8bbe31b77db48">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_set_display()
: <a class="el" href="remmina__protocol__widget_8c.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget.c</a>
, <a class="el" href="remmina__protocol__widget_8h.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_set_error()
-: <a class="el" href="remmina__protocol__widget_8h.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_set_expand()
: <a class="el" href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget.c</a>
@@ -3325,8 +3334,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#ac705ffa194e3c3457e9a0a1bd6c79be8">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_signal_connection_closed()
-: <a class="el" href="remmina__protocol__widget_8h.html#a1cae52cad394f317c712eb4fd709d261">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#a1cae52cad394f317c712eb4fd709d261">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#a1cae52cad394f317c712eb4fd709d261">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#a1cae52cad394f317c712eb4fd709d261">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_signal_connection_opened()
: <a class="el" href="remmina__protocol__widget_8c.html#a05b5edfc3d3d0dcff1745d1d35aaca5c">remmina_protocol_widget.c</a>
@@ -3344,8 +3353,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_start_reverse_tunnel()
-: <a class="el" href="remmina__protocol__widget_8c.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget.c</a>
-, <a class="el" href="remmina__protocol__widget_8h.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget.h</a>
+: <a class="el" href="remmina__protocol__widget_8h.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget.h</a>
+, <a class="el" href="remmina__protocol__widget_8c.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget.c</a>
</li>
<li>remmina_protocol_widget_start_xport_tunnel()
: <a class="el" href="remmina__protocol__widget_8c.html#a172fa9cf2ce196c9846a3e47ea9036b4">remmina_protocol_widget.c</a>
@@ -3359,8 +3368,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__protocol__widget_8h.html#a2551dd6f53480609596d2695040fba5d">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_unmap_event()
-: <a class="el" href="remmina__protocol__widget_8h.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget.h</a>
-, <a class="el" href="remmina__protocol__widget_8c.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget.c</a>
+: <a class="el" href="remmina__protocol__widget_8c.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget.c</a>
+, <a class="el" href="remmina__protocol__widget_8h.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget.h</a>
</li>
<li>remmina_protocol_widget_update_align()
: <a class="el" href="remmina__protocol__widget_8c.html#aa88afa1e3f04974974a8be324b0a930e">remmina_protocol_widget.c</a>
@@ -3387,24 +3396,24 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__public_8h.html#a86940733e5b9cf77b276084e437dcac0">remmina_public.h</a>
</li>
<li>remmina_public_combo_get_active_text()
-: <a class="el" href="remmina__public_8h.html#af1679d83834c8409f23e00c555d677fb">remmina_public.h</a>
-, <a class="el" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public.c</a>
+: <a class="el" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public.c</a>
+, <a class="el" href="remmina__public_8h.html#af1679d83834c8409f23e00c555d677fb">remmina_public.h</a>
</li>
<li>remmina_public_create_combo()
: <a class="el" href="remmina__public_8c.html#ab4a593956dfe89aba3242a5c264a681f">remmina_public.c</a>
, <a class="el" href="remmina__public_8h.html#ab4a593956dfe89aba3242a5c264a681f">remmina_public.h</a>
</li>
<li>remmina_public_create_combo_entry()
-: <a class="el" href="remmina__public_8h.html#ab28356392468fbd147814f09cda6e168">remmina_public.h</a>
-, <a class="el" href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public.c</a>
+: <a class="el" href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public.c</a>
+, <a class="el" href="remmina__public_8h.html#ab28356392468fbd147814f09cda6e168">remmina_public.h</a>
</li>
<li>remmina_public_create_combo_map()
: <a class="el" href="remmina__public_8c.html#a616258d3226ec1f1ecee6ce18aba535b">remmina_public.c</a>
, <a class="el" href="remmina__public_8h.html#a616258d3226ec1f1ecee6ce18aba535b">remmina_public.h</a>
</li>
<li>remmina_public_create_combo_mapint()
-: <a class="el" href="remmina__public_8h.html#ad1feef5a6d19225b8fcbfd0f9555306b">remmina_public.h</a>
-, <a class="el" href="remmina__public_8c.html#ad1feef5a6d19225b8fcbfd0f9555306b">remmina_public.c</a>
+: <a class="el" href="remmina__public_8c.html#ad1feef5a6d19225b8fcbfd0f9555306b">remmina_public.c</a>
+, <a class="el" href="remmina__public_8h.html#ad1feef5a6d19225b8fcbfd0f9555306b">remmina_public.h</a>
</li>
<li>remmina_public_create_combo_text_d()
: <a class="el" href="remmina__public_8c.html#a3796b536244067e9a85923b1cefa6cde">remmina_public.c</a>
@@ -3419,16 +3428,16 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__public_8h.html#a95f1d68c7ab3e2a6b158db45f63538fb">remmina_public.h</a>
</li>
<li>remmina_public_get_modifier_for_keycode()
-: <a class="el" href="remmina__public_8h.html#a1fac51670815da6a72700a10866c179a">remmina_public.h</a>
-, <a class="el" href="remmina__public_8c.html#a1fac51670815da6a72700a10866c179a">remmina_public.c</a>
+: <a class="el" href="remmina__public_8c.html#a1fac51670815da6a72700a10866c179a">remmina_public.c</a>
+, <a class="el" href="remmina__public_8h.html#a1fac51670815da6a72700a10866c179a">remmina_public.h</a>
</li>
<li>remmina_public_get_server_port()
: <a class="el" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public.c</a>
, <a class="el" href="remmina__public_8h.html#adc8b77823386e00e610527d6b0b61149">remmina_public.h</a>
</li>
<li>remmina_public_get_server_port_old()
-: <a class="el" href="remmina__public_8h.html#ad7fe0e4dc091d9227b9610517cf61667">remmina_public.h</a>
-, <a class="el" href="remmina__public_8c.html#ad7fe0e4dc091d9227b9610517cf61667">remmina_public.c</a>
+: <a class="el" href="remmina__public_8c.html#ad7fe0e4dc091d9227b9610517cf61667">remmina_public.c</a>
+, <a class="el" href="remmina__public_8h.html#ad7fe0e4dc091d9227b9610517cf61667">remmina_public.h</a>
</li>
<li>remmina_public_get_server_port_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">python_wrapper_remmina.c</a>
@@ -3446,24 +3455,24 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__public_8h.html#a4573e086e1ff8507eb9447b25bf11b92">remmina_public.h</a>
</li>
<li>remmina_public_gtk_widget_reparent()
-: <a class="el" href="remmina__public_8c.html#ac0f480277a5929212d389b4bcdd56912">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#ac0f480277a5929212d389b4bcdd56912">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#ac0f480277a5929212d389b4bcdd56912">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#ac0f480277a5929212d389b4bcdd56912">remmina_public.c</a>
</li>
<li>remmina_public_load_combo_text_d()
: <a class="el" href="remmina__public_8c.html#aa5eacff7c9dab7457dd65525d01047f8">remmina_public.c</a>
, <a class="el" href="remmina__public_8h.html#aa5eacff7c9dab7457dd65525d01047f8">remmina_public.h</a>
</li>
<li>remmina_public_open_unix_sock()
-: <a class="el" href="remmina__public_8c.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public.c</a>
</li>
<li>remmina_public_open_xdisplay()
: <a class="el" href="remmina__public_8c.html#a52656bbe00a83068f36337f449bdc767">remmina_public.c</a>
, <a class="el" href="remmina__public_8h.html#a52656bbe00a83068f36337f449bdc767">remmina_public.h</a>
</li>
<li>remmina_public_popup_position()
-: <a class="el" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#a92025b5f6512955f9c29608b5451a12c">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#a92025b5f6512955f9c29608b5451a12c">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public.c</a>
</li>
<li>remmina_public_resolution_validation_func()
: <a class="el" href="remmina__public_8c.html#a098786d3aa6991aeba43a61e29d534d0">remmina_public.c</a>
@@ -3478,8 +3487,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__public_8h.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public.h</a>
</li>
<li>remmina_public_str_replace()
-: <a class="el" href="remmina__public_8c.html#aea7547abe3a67e6126addc9ed91af640">remmina_public.c</a>
-, <a class="el" href="remmina__public_8h.html#aea7547abe3a67e6126addc9ed91af640">remmina_public.h</a>
+: <a class="el" href="remmina__public_8h.html#aea7547abe3a67e6126addc9ed91af640">remmina_public.h</a>
+, <a class="el" href="remmina__public_8c.html#aea7547abe3a67e6126addc9ed91af640">remmina_public.c</a>
</li>
<li>remmina_public_str_replace_in_place()
: <a class="el" href="remmina__public_8c.html#a8d7d9b3c8050545469b1af9a35b043a2">remmina_public.c</a>
@@ -3548,8 +3557,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="rdp__cliprdr_8c.html#a5378f6a230a35d2a84e94ee029a10af4">rdp_cliprdr.c</a>
</li>
<li>remmina_rdp_cliprdr_init()
-: <a class="el" href="rdp__cliprdr_8c.html#a2c900a8369c1081e3084f5b17efbe47d">rdp_cliprdr.c</a>
-, <a class="el" href="rdp__cliprdr_8h.html#a2c900a8369c1081e3084f5b17efbe47d">rdp_cliprdr.h</a>
+: <a class="el" href="rdp__cliprdr_8h.html#a2c900a8369c1081e3084f5b17efbe47d">rdp_cliprdr.h</a>
+, <a class="el" href="rdp__cliprdr_8c.html#a2c900a8369c1081e3084f5b17efbe47d">rdp_cliprdr.c</a>
</li>
<li>remmina_rdp_cliprdr_monitor_ready()
: <a class="el" href="rdp__cliprdr_8c.html#aa3ee3696d9fdb72f994184eee168b2ca">rdp_cliprdr.c</a>
@@ -3618,8 +3627,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a6b5a1dbb05d7f63d451b84ea5ec85c03">rdp_plugin.h</a>
</li>
<li>remmina_rdp_event_event_push()
-: <a class="el" href="rdp__event_8c.html#ad446d6471bddba97f8bfcee8c51e4580">rdp_event.c</a>
-, <a class="el" href="rdp__plugin_8h.html#ad446d6471bddba97f8bfcee8c51e4580">rdp_plugin.h</a>
+: <a class="el" href="rdp__plugin_8h.html#ad446d6471bddba97f8bfcee8c51e4580">rdp_plugin.h</a>
+, <a class="el" href="rdp__event_8c.html#ad446d6471bddba97f8bfcee8c51e4580">rdp_event.c</a>
</li>
<li>remmina_rdp_event_free_cursor()
: <a class="el" href="rdp__event_8c.html#a740d33b9c229ada638eeeebe2ffca461">rdp_event.c</a>
@@ -3683,8 +3692,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="rdp__event_8c.html#a2b91746b782b7782432bd1d23c6a9945">rdp_event.c</a>
</li>
<li>remmina_rdp_event_queue_ui_async()
-: <a class="el" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">rdp_event.c</a>
-, <a class="el" href="rdp__event_8h.html#ae445fd0a84c7c9414a177a69c86cf325">rdp_event.h</a>
+: <a class="el" href="rdp__event_8h.html#ae445fd0a84c7c9414a177a69c86cf325">rdp_event.h</a>
+, <a class="el" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">rdp_event.c</a>
</li>
<li>remmina_rdp_event_queue_ui_sync_retint()
: <a class="el" href="rdp__event_8c.html#ab5fe43c1b1b77c39f118d2581942eb81">rdp_event.c</a>
@@ -3749,15 +3758,15 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="rdp__event_8c.html#a65eef99dc99f77be815a5da804ed94fc">rdp_event.c</a>
</li>
<li>remmina_rdp_event_update_rect()
-: <a class="el" href="rdp__event_8c.html#a712a9b04decd8b928d71db44b9b14fc9">rdp_event.c</a>
-, <a class="el" href="rdp__event_8h.html#a712a9b04decd8b928d71db44b9b14fc9">rdp_event.h</a>
+: <a class="el" href="rdp__event_8h.html#a712a9b04decd8b928d71db44b9b14fc9">rdp_event.h</a>
+, <a class="el" href="rdp__event_8c.html#a712a9b04decd8b928d71db44b9b14fc9">rdp_event.c</a>
</li>
<li>remmina_rdp_event_update_regions()
: <a class="el" href="rdp__event_8c.html#a2ff2e46de1ad42c9aa8f792d629e0a89">rdp_event.c</a>
</li>
<li>remmina_rdp_event_update_scale()
-: <a class="el" href="rdp__event_8h.html#a64ce0c66bb4cb6ddaee263ce8563f497">rdp_event.h</a>
-, <a class="el" href="rdp__event_8c.html#a64ce0c66bb4cb6ddaee263ce8563f497">rdp_event.c</a>
+: <a class="el" href="rdp__event_8c.html#a64ce0c66bb4cb6ddaee263ce8563f497">rdp_event.c</a>
+, <a class="el" href="rdp__event_8h.html#a64ce0c66bb4cb6ddaee263ce8563f497">rdp_event.h</a>
</li>
<li>remmina_rdp_event_update_scale_factor()
: <a class="el" href="rdp__event_8c.html#a6076424eb759c91ca9c8da59432c66d6">rdp_event.c</a>
@@ -3822,8 +3831,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="rdp__monitor_8h.html#a7536570aee98af77f038d82fe9f57ca6">rdp_monitor.h</a>
</li>
<li>remmina_rdp_OnChannelConnectedEventHandler()
-: <a class="el" href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">rdp_channels.c</a>
-, <a class="el" href="rdp__channels_8h.html#a81be0bdb718bc47b5296698a7b47ce20">rdp_channels.h</a>
+: <a class="el" href="rdp__channels_8h.html#a81be0bdb718bc47b5296698a7b47ce20">rdp_channels.h</a>
+, <a class="el" href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">rdp_channels.c</a>
</li>
<li>remmina_rdp_OnChannelDisconnectedEventHandler()
: <a class="el" href="rdp__channels_8h.html#a2d82ea9a38463d03c07271a356ccaec2">rdp_channels.h</a>
@@ -4024,12 +4033,12 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__scrolled__viewport_8c.html#ab6821a1bbe2dbd787512236a68493b4f">remmina_scrolled_viewport.c</a>
</li>
<li>remmina_scrolled_viewport_new()
-: <a class="el" href="remmina__scrolled__viewport_8c.html#aadfe00c3960eab12d17bdb47495dd1ee">remmina_scrolled_viewport.c</a>
-, <a class="el" href="remmina__scrolled__viewport_8h.html#aadfe00c3960eab12d17bdb47495dd1ee">remmina_scrolled_viewport.h</a>
+: <a class="el" href="remmina__scrolled__viewport_8h.html#aadfe00c3960eab12d17bdb47495dd1ee">remmina_scrolled_viewport.h</a>
+, <a class="el" href="remmina__scrolled__viewport_8c.html#aadfe00c3960eab12d17bdb47495dd1ee">remmina_scrolled_viewport.c</a>
</li>
<li>remmina_scrolled_viewport_remove_motion()
-: <a class="el" href="remmina__scrolled__viewport_8c.html#a0ba56f429a9c1ec05b093f5f78be692c">remmina_scrolled_viewport.c</a>
-, <a class="el" href="remmina__scrolled__viewport_8h.html#a0ba56f429a9c1ec05b093f5f78be692c">remmina_scrolled_viewport.h</a>
+: <a class="el" href="remmina__scrolled__viewport_8h.html#a0ba56f429a9c1ec05b093f5f78be692c">remmina_scrolled_viewport.h</a>
+, <a class="el" href="remmina__scrolled__viewport_8c.html#a0ba56f429a9c1ec05b093f5f78be692c">remmina_scrolled_viewport.c</a>
</li>
<li>remmina_search_widget_search_backward()
: <a class="el" href="remmina__ssh__plugin_8c.html#ab1a62e7322f9795828be8261f00a72b9">remmina_ssh_plugin.c</a>
@@ -4066,8 +4075,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__sftp__client_8c.html#a52b86e14d8abd0a5b6ddeb464a22a5f0">remmina_sftp_client.c</a>
</li>
<li>remmina_sftp_client_new()
-: <a class="el" href="remmina__sftp__client_8c.html#ac2b4d83fed9c42029fee134684601aba">remmina_sftp_client.c</a>
-, <a class="el" href="remmina__sftp__client_8h.html#a0a3d678ad99a04a8b6aa3d958d60dc7d">remmina_sftp_client.h</a>
+: <a class="el" href="remmina__sftp__client_8h.html#a0a3d678ad99a04a8b6aa3d958d60dc7d">remmina_sftp_client.h</a>
+, <a class="el" href="remmina__sftp__client_8c.html#ac2b4d83fed9c42029fee134684601aba">remmina_sftp_client.c</a>
</li>
<li>remmina_sftp_client_on_canceltask()
: <a class="el" href="remmina__sftp__client_8c.html#ad2d75d3cee69addbb691a85ac864db0f">remmina_sftp_client.c</a>
@@ -4082,8 +4091,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__sftp__client_8c.html#a476effba1e0cf529dab3f75a501341ea">remmina_sftp_client.c</a>
</li>
<li>remmina_sftp_client_open()
-: <a class="el" href="remmina__sftp__client_8c.html#a9fb6d25e4676b2fa574f958a5ba271a1">remmina_sftp_client.c</a>
-, <a class="el" href="remmina__sftp__client_8h.html#a9fb6d25e4676b2fa574f958a5ba271a1">remmina_sftp_client.h</a>
+: <a class="el" href="remmina__sftp__client_8h.html#a9fb6d25e4676b2fa574f958a5ba271a1">remmina_sftp_client.h</a>
+, <a class="el" href="remmina__sftp__client_8c.html#a9fb6d25e4676b2fa574f958a5ba271a1">remmina_sftp_client.c</a>
</li>
<li>remmina_sftp_client_refresh()
: <a class="el" href="remmina__sftp__client_8c.html#ae87948f1c87c6eb6b16664665cac9a2c">remmina_sftp_client.c</a>
@@ -4137,8 +4146,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__ssh_8h.html#a1e09b32044c240a7dce0ad8afcbf0ff2">remmina_ssh.h</a>
</li>
<li>remmina_sftp_plugin_register()
-: <a class="el" href="remmina__sftp__plugin_8h.html#ac06b00323f7ac1e7faea66d135bffba4">remmina_sftp_plugin.h</a>
-, <a class="el" href="remmina__sftp__plugin_8c.html#a14a447ab8a10b109967d92c8d2db0ff9">remmina_sftp_plugin.c</a>
+: <a class="el" href="remmina__sftp__plugin_8c.html#a14a447ab8a10b109967d92c8d2db0ff9">remmina_sftp_plugin.c</a>
+, <a class="el" href="remmina__sftp__plugin_8h.html#ac06b00323f7ac1e7faea66d135bffba4">remmina_sftp_plugin.h</a>
</li>
<li>remmina_sha1_file()
: <a class="el" href="remmina__utils_8h.html#aff7d3597f23cae366973218cc01a2ae8">remmina_utils.h</a>
@@ -4149,23 +4158,23 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__sodium_8h.html#a17d17beeb57808af1c4299e3b4b94e9a">remmina_sodium.h</a>
</li>
<li>remmina_sodium_pwhash()
-: <a class="el" href="remmina__sodium_8h.html#ae661257deabb27ca05747be21aac253c">remmina_sodium.h</a>
-, <a class="el" href="remmina__sodium_8c.html#ae661257deabb27ca05747be21aac253c">remmina_sodium.c</a>
+: <a class="el" href="remmina__sodium_8c.html#ae661257deabb27ca05747be21aac253c">remmina_sodium.c</a>
+, <a class="el" href="remmina__sodium_8h.html#ae661257deabb27ca05747be21aac253c">remmina_sodium.h</a>
</li>
<li>remmina_sodium_pwhash_str()
-: <a class="el" href="remmina__sodium_8h.html#a42b49fa9a654cb061a02f52577171e1e">remmina_sodium.h</a>
-, <a class="el" href="remmina__sodium_8c.html#a42b49fa9a654cb061a02f52577171e1e">remmina_sodium.c</a>
+: <a class="el" href="remmina__sodium_8c.html#a42b49fa9a654cb061a02f52577171e1e">remmina_sodium.c</a>
+, <a class="el" href="remmina__sodium_8h.html#a42b49fa9a654cb061a02f52577171e1e">remmina_sodium.h</a>
</li>
<li>remmina_sodium_pwhash_str_verify()
-: <a class="el" href="remmina__sodium_8h.html#a6df48c8b8aafee07bfe41fb89581aa5f">remmina_sodium.h</a>
-, <a class="el" href="remmina__sodium_8c.html#a6df48c8b8aafee07bfe41fb89581aa5f">remmina_sodium.c</a>
+: <a class="el" href="remmina__sodium_8c.html#a6df48c8b8aafee07bfe41fb89581aa5f">remmina_sodium.c</a>
+, <a class="el" href="remmina__sodium_8h.html#a6df48c8b8aafee07bfe41fb89581aa5f">remmina_sodium.h</a>
</li>
<li>remmina_ssh_advanced_settings
: <a class="el" href="remmina__ssh__plugin_8c.html#a51b5159cc5a6833759bc87688221b807">remmina_ssh_plugin.c</a>
</li>
<li>remmina_ssh_auth()
-: <a class="el" href="remmina__ssh_8c.html#aad84c6609cb431d48121ae5e0902441b">remmina_ssh.c</a>
-, <a class="el" href="remmina__ssh_8h.html#aad84c6609cb431d48121ae5e0902441b">remmina_ssh.h</a>
+: <a class="el" href="remmina__ssh_8h.html#aad84c6609cb431d48121ae5e0902441b">remmina_ssh.h</a>
+, <a class="el" href="remmina__ssh_8c.html#aad84c6609cb431d48121ae5e0902441b">remmina_ssh.c</a>
</li>
<li>REMMINA_SSH_AUTH_AGAIN
: <a class="el" href="remmina__ssh_8h.html#a879c265f2e8050e4e72a061ab3747ee1a416a26d636d492c3530b6c5f0f04a623">remmina_ssh.h</a>
@@ -4250,8 +4259,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__ssh_8h.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh.h</a>
</li>
<li>remmina_ssh_identity_path()
-: <a class="el" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh.c</a>
-, <a class="el" href="remmina__ssh_8h.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh.h</a>
+: <a class="el" href="remmina__ssh_8h.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh.h</a>
+, <a class="el" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh.c</a>
</li>
<li>remmina_ssh_init_from_file()
: <a class="el" href="remmina__ssh_8h.html#a6815a78f65795cbc6795ca1c59e73102">remmina_ssh.h</a>
@@ -4273,19 +4282,19 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__ssh__plugin_8h.html#a3e8e08f2a9b05530e85962f9b8c556e9">remmina_ssh_plugin.h</a>
</li>
<li>remmina_ssh_plugin_register()
-: <a class="el" href="remmina__ssh__plugin_8h.html#af9f9487a10fb1a9c4b494ce3657359b9">remmina_ssh_plugin.h</a>
-, <a class="el" href="remmina__ssh__plugin_8c.html#a6f594d157e09639e09b1f32a420da96c">remmina_ssh_plugin.c</a>
+: <a class="el" href="remmina__ssh__plugin_8c.html#a6f594d157e09639e09b1f32a420da96c">remmina_ssh_plugin.c</a>
+, <a class="el" href="remmina__ssh__plugin_8h.html#af9f9487a10fb1a9c4b494ce3657359b9">remmina_ssh_plugin.h</a>
</li>
<li>remmina_ssh_search_item()
: <a class="el" href="remmina__ssh_8c.html#af39f90e2343e62348226aed0d7496dda">remmina_ssh.c</a>
</li>
<li>remmina_ssh_set_application_error()
-: <a class="el" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh.c</a>
-, <a class="el" href="remmina__ssh_8h.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh.h</a>
+: <a class="el" href="remmina__ssh_8h.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh.h</a>
+, <a class="el" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh.c</a>
</li>
<li>remmina_ssh_set_error()
-: <a class="el" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh.c</a>
-, <a class="el" href="remmina__ssh_8h.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh.h</a>
+: <a class="el" href="remmina__ssh_8h.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh.h</a>
+, <a class="el" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh.c</a>
</li>
<li>remmina_ssh_set_nodelay()
: <a class="el" href="remmina__ssh_8c.html#a1daf0b140ecf3ef9665d1c5d4c0ec479">remmina_ssh.c</a>
@@ -4317,12 +4326,12 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
<li>remmina_ssh_tunnel_new_from_file()
: <a class="el" href="remmina__ssh_8h.html#abf04fd329ab77bbd4f6aa1cb1eaa349d">remmina_ssh.h</a>
</li>
-<li>remmina_ssh_tunnel_open()
-: <a class="el" href="remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53">remmina_ssh.h</a>
-</li>
<li>REMMINA_SSH_TUNNEL_OPEN
: <a class="el" href="remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14">remmina_ssh.h</a>
</li>
+<li>remmina_ssh_tunnel_open()
+: <a class="el" href="remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53">remmina_ssh.h</a>
+</li>
<li>remmina_ssh_tunnel_reverse()
: <a class="el" href="remmina__ssh_8h.html#ae47c8270267b02b9c0ff5b36074101c2">remmina_ssh.h</a>
</li>
@@ -4419,8 +4428,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__string__array_8h.html#a7f1c8e427a25c2d5cede3952b1d0ad90">remmina_string_array.h</a>
</li>
<li>remmina_string_array_remove()
-: <a class="el" href="remmina__string__array_8c.html#a2a8a9753ebf61c9418a77ba3dd654ff3">remmina_string_array.c</a>
-, <a class="el" href="remmina__string__array_8h.html#a2a8a9753ebf61c9418a77ba3dd654ff3">remmina_string_array.h</a>
+: <a class="el" href="remmina__string__array_8h.html#a2a8a9753ebf61c9418a77ba3dd654ff3">remmina_string_array.h</a>
+, <a class="el" href="remmina__string__array_8c.html#a2a8a9753ebf61c9418a77ba3dd654ff3">remmina_string_array.c</a>
</li>
<li>remmina_string_array_remove_index()
: <a class="el" href="remmina__string__array_8c.html#a40811c036e46f6544ab6c4cff445454b">remmina_string_array.c</a>
@@ -4435,8 +4444,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__string__array_8h.html#a96f7bec7ce32de6cf5deadcd5aec51ec">remmina_string_array.h</a>
</li>
<li>remmina_string_list_get_text()
-: <a class="el" href="remmina__string__list_8c.html#a74058eac0af28c05a55d041103457aec">remmina_string_list.c</a>
-, <a class="el" href="remmina__string__list_8h.html#a74058eac0af28c05a55d041103457aec">remmina_string_list.h</a>
+: <a class="el" href="remmina__string__list_8h.html#a74058eac0af28c05a55d041103457aec">remmina_string_list.h</a>
+, <a class="el" href="remmina__string__list_8c.html#a74058eac0af28c05a55d041103457aec">remmina_string_list.c</a>
</li>
<li>remmina_string_list_init()
: <a class="el" href="remmina__string__list_8c.html#a3c7633dffb5b6bab089c71c44506d8ab">remmina_string_list.c</a>
@@ -4468,12 +4477,12 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__string__list_8h.html#ab1bacc097f59c20b477d954bb863a5e0">remmina_string_list.h</a>
</li>
<li>remmina_string_list_set_titles()
-: <a class="el" href="remmina__string__list_8c.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list.c</a>
-, <a class="el" href="remmina__string__list_8h.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list.h</a>
+: <a class="el" href="remmina__string__list_8h.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list.h</a>
+, <a class="el" href="remmina__string__list_8c.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list.c</a>
</li>
<li>remmina_string_list_set_validation_func()
-: <a class="el" href="remmina__string__list_8h.html#a500b85eafd23280f998d2980d1eba80e">remmina_string_list.h</a>
-, <a class="el" href="remmina__string__list_8c.html#a500b85eafd23280f998d2980d1eba80e">remmina_string_list.c</a>
+: <a class="el" href="remmina__string__list_8c.html#a500b85eafd23280f998d2980d1eba80e">remmina_string_list.c</a>
+, <a class="el" href="remmina__string__list_8h.html#a500b85eafd23280f998d2980d1eba80e">remmina_string_list.h</a>
</li>
<li>remmina_string_list_update_buttons_state()
: <a class="el" href="remmina__string__list_8c.html#a777917055c80821e9bde6ac8fd06e2ff">remmina_string_list.c</a>
@@ -4487,8 +4496,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__sysinfo_8h.html#a5e08ab3a66f27ada8e700ae42a181b6a">remmina_sysinfo.h</a>
</li>
<li>remmina_sysinfo_is_appindicator_available()
-: <a class="el" href="remmina__sysinfo_8c.html#ae6ecf91edb905f3b2b39e33e05325590">remmina_sysinfo.c</a>
-, <a class="el" href="remmina__sysinfo_8h.html#a9e89ac64e13b47a651554d6a77af6b23">remmina_sysinfo.h</a>
+: <a class="el" href="remmina__sysinfo_8h.html#a9e89ac64e13b47a651554d6a77af6b23">remmina_sysinfo.h</a>
+, <a class="el" href="remmina__sysinfo_8c.html#ae6ecf91edb905f3b2b39e33e05325590">remmina_sysinfo.c</a>
</li>
<li>REMMINA_TAB_ALL
: <a class="el" href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eafb68a1eeda5303774bbc922ef8d364e9">remmina_pref.h</a>
@@ -4612,8 +4621,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__utils_8c.html#a54cee350c4ecc6e77af835c4ba90df4c">remmina_utils.c</a>
</li>
<li>remmina_utils_get_kernel_arch()
-: <a class="el" href="remmina__utils_8c.html#a116e7cd4565386fe531d3a6d1a3d3730">remmina_utils.c</a>
-, <a class="el" href="remmina__utils_8h.html#a116e7cd4565386fe531d3a6d1a3d3730">remmina_utils.h</a>
+: <a class="el" href="remmina__utils_8h.html#a116e7cd4565386fe531d3a6d1a3d3730">remmina_utils.h</a>
+, <a class="el" href="remmina__utils_8c.html#a116e7cd4565386fe531d3a6d1a3d3730">remmina_utils.c</a>
</li>
<li>remmina_utils_get_kernel_name()
: <a class="el" href="remmina__utils_8h.html#abfc722d07d9936711794411bfbed0522">remmina_utils.h</a>
@@ -4628,8 +4637,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__utils_8c.html#a0f10e190a6dd212fcb0cf36ce81c8324">remmina_utils.c</a>
</li>
<li>remmina_utils_get_lsb_codename()
-: <a class="el" href="remmina__utils_8c.html#a2b4dbb0da7c8ba4bd86877097b85d10c">remmina_utils.c</a>
-, <a class="el" href="remmina__utils_8h.html#a2b4dbb0da7c8ba4bd86877097b85d10c">remmina_utils.h</a>
+: <a class="el" href="remmina__utils_8h.html#a2b4dbb0da7c8ba4bd86877097b85d10c">remmina_utils.h</a>
+, <a class="el" href="remmina__utils_8c.html#a2b4dbb0da7c8ba4bd86877097b85d10c">remmina_utils.c</a>
</li>
<li>remmina_utils_get_lsb_description()
: <a class="el" href="remmina__utils_8h.html#ac00cb21c5cb5efcf7afc6eeae2147a75">remmina_utils.h</a>
@@ -4640,8 +4649,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__utils_8h.html#aa768b6fe171695d212da4c6eaf74cf22">remmina_utils.h</a>
</li>
<li>remmina_utils_get_lsb_release()
-: <a class="el" href="remmina__utils_8h.html#a5ee50df5d7585d229a154a712c9161ca">remmina_utils.h</a>
-, <a class="el" href="remmina__utils_8c.html#a5ee50df5d7585d229a154a712c9161ca">remmina_utils.c</a>
+: <a class="el" href="remmina__utils_8c.html#a5ee50df5d7585d229a154a712c9161ca">remmina_utils.c</a>
+, <a class="el" href="remmina__utils_8h.html#a5ee50df5d7585d229a154a712c9161ca">remmina_utils.h</a>
</li>
<li>remmina_utils_get_os_info()
: <a class="el" href="remmina__utils_8c.html#af1acfeca84e3efd47ab1ef8365f94f99">remmina_utils.c</a>
@@ -4659,8 +4668,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__utils_8c.html#aa6859a61aa28f46591750c9afdef66f4">remmina_utils.c</a>
</li>
<li>remmina_utils_string_replace_all()
-: <a class="el" href="remmina__utils_8h.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils.h</a>
-, <a class="el" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils.c</a>
+: <a class="el" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils.c</a>
+, <a class="el" href="remmina__utils_8h.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils.h</a>
</li>
<li>remmina_utils_string_strip()
: <a class="el" href="remmina__utils_8c.html#afe83bd0997a1054045e17d3f66c8bb0d">remmina_utils.c</a>
@@ -4683,16 +4692,16 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
, <a class="el" href="remmina__widget__pool_8h.html#af888e4e0c2d590e61c72608a7482f18a">remmina_widget_pool.h</a>
</li>
<li>remmina_widget_pool_find()
-: <a class="el" href="remmina__widget__pool_8h.html#ab776b24a3b829a1d5dd7974cb8582c05">remmina_widget_pool.h</a>
-, <a class="el" href="remmina__widget__pool_8c.html#ab776b24a3b829a1d5dd7974cb8582c05">remmina_widget_pool.c</a>
+: <a class="el" href="remmina__widget__pool_8c.html#ab776b24a3b829a1d5dd7974cb8582c05">remmina_widget_pool.c</a>
+, <a class="el" href="remmina__widget__pool_8h.html#ab776b24a3b829a1d5dd7974cb8582c05">remmina_widget_pool.h</a>
</li>
<li>remmina_widget_pool_find_by_window()
: <a class="el" href="remmina__widget__pool_8c.html#a0a6a2069cdbbb920fb09f95bec3e997e">remmina_widget_pool.c</a>
, <a class="el" href="remmina__widget__pool_8h.html#a0a6a2069cdbbb920fb09f95bec3e997e">remmina_widget_pool.h</a>
</li>
<li>remmina_widget_pool_foreach()
-: <a class="el" href="remmina__widget__pool_8h.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool.h</a>
-, <a class="el" href="remmina__widget__pool_8c.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool.c</a>
+: <a class="el" href="remmina__widget__pool_8c.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool.c</a>
+, <a class="el" href="remmina__widget__pool_8h.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool.h</a>
</li>
<li>remmina_widget_pool_init()
: <a class="el" href="remmina__widget__pool_8h.html#aadc178f8f991ba939827d235aae8ad09">remmina_widget_pool.h</a>
@@ -4702,8 +4711,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="remmina__widget__pool_8c.html#aa5fd17580202843eab40cabb258d2664">remmina_widget_pool.c</a>
</li>
<li>remmina_widget_pool_register()
-: <a class="el" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool.c</a>
-, <a class="el" href="remmina__widget__pool_8h.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool.h</a>
+: <a class="el" href="remmina__widget__pool_8h.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool.h</a>
+, <a class="el" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool.c</a>
</li>
<li>remmina_widget_pool_register_wrapper()
: <a class="el" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">python_wrapper_remmina.c</a>
@@ -5188,8 +5197,8 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
: <a class="el" href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29">rdp_plugin.c</a>
</li>
<li>rf_register_graphics()
-: <a class="el" href="rdp__graphics_8c.html#a95732c40c35499f3440715b6526279b1">rdp_graphics.c</a>
-, <a class="el" href="rdp__graphics_8h.html#a95732c40c35499f3440715b6526279b1">rdp_graphics.h</a>
+: <a class="el" href="rdp__graphics_8h.html#a95732c40c35499f3440715b6526279b1">rdp_graphics.h</a>
+, <a class="el" href="rdp__graphics_8c.html#a95732c40c35499f3440715b6526279b1">rdp_graphics.c</a>
</li>
<li>rf_uninit()
: <a class="el" href="rdp__plugin_8h.html#ab113687b2d454d2ef5865de40a9cabbb">rdp_plugin.h</a>
diff --git a/public/gvnc__plugin_8c.html b/public/gvnc__plugin_8c.html
index cc55db5b8..36adbc4cf 100644
--- a/public/gvnc__plugin_8c.html
+++ b/public/gvnc__plugin_8c.html
@@ -1218,7 +1218,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableclipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;No clipboard sync&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableserverbell&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Ignore remote bell messages&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enableaudio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable audio channel&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;viewonly&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;View only&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;shared&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Shared connection&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;If the server should try to share the desktop by leaving other clients connected&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, TRUE, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableclipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;No clipboard sync&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableserverbell&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Ignore remote bell messages&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enableaudio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable audio channel&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;viewonly&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;View only&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;shared&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Shared connection&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;If the server should try to share the desktop by leaving other clients connected&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, TRUE, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
@@ -1246,10 +1246,10 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;VNC password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;depth_profile&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Colour depth&quot;</span>), FALSE, <a class="code" href="gvnc__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;lossy_encoding&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use JPEG Compression&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;This might not work on all VNC servers&quot;</span>), NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;gvncdebug&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable GTK-VNC debug&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a7d6c92b318e43b96efddbcaa9400c1f1"><div class="ttname"><a href="gvnc__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a></div><div class="ttdeci">static gpointer colordepth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00817">gvnc_plugin.c:817</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
@@ -1330,7 +1330,7 @@ Variables</h2></td></tr>
<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, </div><div class="line"> PLUGIN_NAME, </div><div class="line"> PLUGIN_DESCRIPTION, </div><div class="line"> GETTEXT_PACKAGE, </div><div class="line"> PLUGIN_VERSION, </div><div class="line"> PLUGIN_APPICON, </div><div class="line"> PLUGIN_APPICON, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#aa563859b0b1b63036347bded98613658">gvnc_plugin_basic_settings</a>, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#a23708a2cdeefb16592429f343304e88b">gvnc_plugin_advanced_settings</a>, </div><div class="line"> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#a9d963472ca383dd4e2e27dba509209c5">gvnc_plugin_features</a>, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#a061e80e3c8a6f5abea061523ffdd494c">gvnc_plugin_init</a>, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#a2ab9e89fee63e4eab4e538ffbd86b756">gvnc_plugin_open_connection</a>, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#aa005bb6f69c16b94c5b942db56b4ecee">gvnc_plugin_close_connection</a>, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#a54fb7a7b3428782a922353b67b6f27bd">gvnc_plugin_query_feature</a>, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#a77720239fff5c40108ebb32a4ca5647f">gvnc_plugin_call_feature</a>, </div><div class="line"> <a class="code" href="gvnc__plugin_8c.html#a7b4eab9edf566826986d0f2360b4c89b">gvnc_plugin_keystroke</a>, </div><div class="line"> NULL, </div><div class="line"> </div><div class="line"> NULL, </div><div class="line"> NULL </div><div class="line">}</div><div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_aa563859b0b1b63036347bded98613658"><div class="ttname"><a href="gvnc__plugin_8c.html#aa563859b0b1b63036347bded98613658">gvnc_plugin_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting gvnc_plugin_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00844">gvnc_plugin.c:844</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a54fb7a7b3428782a922353b67b6f27bd"><div class="ttname"><a href="gvnc__plugin_8c.html#a54fb7a7b3428782a922353b67b6f27bd">gvnc_plugin_query_feature</a></div><div class="ttdeci">static gboolean gvnc_plugin_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00352">gvnc_plugin.c:352</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a77720239fff5c40108ebb32a4ca5647f"><div class="ttname"><a href="gvnc__plugin_8c.html#a77720239fff5c40108ebb32a4ca5647f">gvnc_plugin_call_feature</a></div><div class="ttdeci">static void gvnc_plugin_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00359">gvnc_plugin.c:359</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_aa005bb6f69c16b94c5b942db56b4ecee"><div class="ttname"><a href="gvnc__plugin_8c.html#aa005bb6f69c16b94c5b942db56b4ecee">gvnc_plugin_close_connection</a></div><div class="ttdeci">static gboolean gvnc_plugin_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00662">gvnc_plugin.c:662</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a2ab9e89fee63e4eab4e538ffbd86b756"><div class="ttname"><a href="gvnc__plugin_8c.html#a2ab9e89fee63e4eab4e538ffbd86b756">gvnc_plugin_open_connection</a></div><div class="ttdeci">static gboolean gvnc_plugin_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00741">gvnc_plugin.c:741</a></div></div>
diff --git a/public/gvnc__plugin_8c_source.html b/public/gvnc__plugin_8c_source.html
index a8d9e03e3..7a758ec55 100644
--- a/public/gvnc__plugin_8c_source.html
+++ b/public/gvnc__plugin_8c_source.html
@@ -98,11 +98,11 @@ $(document).ready(function(){initNavTree('gvnc__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_plugin_service_html_a63422af287a04791e1bed20571bd4638"><div class="ttname"><a href="struct___remmina_plugin_service.html#a63422af287a04791e1bed20571bd4638">_RemminaPluginService::open_unix_sock</a></div><div class="ttdeci">gint(* open_unix_sock)(const char *unixsock)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00248">plugin.h:248</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_ad9f498bc5da87c9bf3af3533be9ffeb7"><div class="ttname"><a href="gvnc__plugin_8c.html#ad9f498bc5da87c9bf3af3533be9ffeb7">gvnc_plugin_ask_auth</a></div><div class="ttdeci">static gboolean gvnc_plugin_ask_auth(GtkWidget *vncdisplay, GValueArray *credList, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00494">gvnc_plugin.c:494</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a7ac875d202f1ccd0ae85bb60ee3222c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">_RemminaPluginService::protocol_plugin_set_error</a></div><div class="ttdeci">void(* protocol_plugin_set_error)(RemminaProtocolWidget *gp, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00176">plugin.h:176</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a16685eea158879e41b101ca3634de462a448b46002be096d6e37973621467b0d7"><div class="ttname"><a href="gvnc__plugin_8c.html#a16685eea158879e41b101ca3634de462a448b46002be096d6e37973621467b0d7">GVNC_PLUGIN_FEATURE_TOOL_SENDCTRLALTF1</a></div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00058">gvnc_plugin.c:58</a></div></div>
<div class="ttc" id="struct___g_vnc_plugin_data_html_adcfa22529d69eec8414ed3e64fd0bdd6"><div class="ttname"><a href="struct___g_vnc_plugin_data.html#adcfa22529d69eec8414ed3e64fd0bdd6">_GVncPluginData::height</a></div><div class="ttdeci">gint height</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8h_source.html#l00125">gvnc_plugin.h:125</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_ade16e910fc72608fe942f1e742a3c045"><div class="ttname"><a href="gvnc__plugin_8c.html#ade16e910fc72608fe942f1e742a3c045">gvnc_plugin_update_scale_mode</a></div><div class="ttdeci">static void gvnc_plugin_update_scale_mode(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00312">gvnc_plugin.c:312</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00145">types.h:145</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a16685eea158879e41b101ca3634de462a990a3a376c9b12ab36f20a2bd87f9f0a"><div class="ttname"><a href="gvnc__plugin_8c.html#a16685eea158879e41b101ca3634de462a990a3a376c9b12ab36f20a2bd87f9f0a">GVNC_PLUGIN_FEATURE_TOOL_SENDCTRLALTF8</a></div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00065">gvnc_plugin.c:65</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a16685eea158879e41b101ca3634de462abf786b002dd42a779ac1ddbf650380c6"><div class="ttname"><a href="gvnc__plugin_8c.html#a16685eea158879e41b101ca3634de462abf786b002dd42a779ac1ddbf650380c6">GVNC_PLUGIN_FEATURE_PREF_VIEWONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00053">gvnc_plugin.c:53</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
@@ -142,7 +142,7 @@ $(document).ready(function(){initNavTree('gvnc__plugin_8c_source.html','');});
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00051">types.h:51</a></div></div>
<div class="ttc" id="struct___g_vnc_plugin_data_html_a2ea581f52e0942bf1aad06004a11f70c"><div class="ttname"><a href="struct___g_vnc_plugin_data.html#a2ea581f52e0942bf1aad06004a11f70c">_GVncPluginData::signal_clipboard</a></div><div class="ttdeci">gulong signal_clipboard</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8h_source.html#l00119">gvnc_plugin.h:119</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_af2b857b2de1af3621f543b810f68b17b"><div class="ttname"><a href="struct___remmina_plugin_service.html#af2b857b2de1af3621f543b810f68b17b">_RemminaPluginService::protocol_plugin_init_get_savepassword</a></div><div class="ttdeci">gboolean(* protocol_plugin_init_get_savepassword)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00197">plugin.h:197</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_aa0f78eb9b36ba248c2e368684903ae44"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">_RemminaPluginScreenshotData::bytesPerPixel</a></div><div class="ttdeci">int bytesPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00086">types.h:86</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a16685eea158879e41b101ca3634de462a2e3a4f19eb3543c17df1619605ebc42b"><div class="ttname"><a href="gvnc__plugin_8c.html#a16685eea158879e41b101ca3634de462a2e3a4f19eb3543c17df1619605ebc42b">GVNC_PLUGIN_FEATURE_TOOL_REBOOT</a></div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00071">gvnc_plugin.c:71</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a56e5020de11446dbc23f3480e313f208"><div class="ttname"><a href="gvnc__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a></div><div class="ttdeci">G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00929">gvnc_plugin.c:929</a></div></div>
@@ -153,11 +153,11 @@ $(document).ready(function(){initNavTree('gvnc__plugin_8c_source.html','');});
<div class="ttc" id="gvnc__plugin_8c_html_a16685eea158879e41b101ca3634de462a964a8245b8efeaee841ca0df89c4a41c"><div class="ttname"><a href="gvnc__plugin_8c.html#a16685eea158879e41b101ca3634de462a964a8245b8efeaee841ca0df89c4a41c">GVNC_PLUGIN_FEATURE_TOOL_SENDCTRLALTF9</a></div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00066">gvnc_plugin.c:66</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_ae181446ee16634466109d74b0169215b"><div class="ttname"><a href="gvnc__plugin_8c.html#ae181446ee16634466109d74b0169215b">gvnc_plugin_initialized</a></div><div class="ttdeci">static void gvnc_plugin_initialized(GtkWidget *vncdisplay, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00609">gvnc_plugin.c:609</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_ab5d115d8f9fc675f2419d38cdd424ce6"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">_RemminaPluginScreenshotData::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00087">types.h:87</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a77720239fff5c40108ebb32a4ca5647f"><div class="ttname"><a href="gvnc__plugin_8c.html#a77720239fff5c40108ebb32a4ca5647f">gvnc_plugin_call_feature</a></div><div class="ttdeci">static void gvnc_plugin_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00359">gvnc_plugin.c:359</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_aa005bb6f69c16b94c5b942db56b4ecee"><div class="ttname"><a href="gvnc__plugin_8c.html#aa005bb6f69c16b94c5b942db56b4ecee">gvnc_plugin_close_connection</a></div><div class="ttdeci">static gboolean gvnc_plugin_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00662">gvnc_plugin.c:662</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="struct___g_vnc_plugin_data_html_ad476177bc9b886254223688b79e07898"><div class="ttname"><a href="struct___g_vnc_plugin_data.html#ad476177bc9b886254223688b79e07898">_GVncPluginData::lossy_encoding</a></div><div class="ttdeci">gboolean lossy_encoding</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8h_source.html#l00122">gvnc_plugin.h:122</a></div></div>
<div class="ttc" id="struct___g_vnc_plugin_data_html_a46c68b45ac89a62e02b94aa7540b48ec"><div class="ttname"><a href="struct___g_vnc_plugin_data.html#a46c68b45ac89a62e02b94aa7540b48ec">_GVncPluginData::width</a></div><div class="ttdeci">gint width</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8h_source.html#l00124">gvnc_plugin.h:124</a></div></div>
@@ -170,17 +170,17 @@ $(document).ready(function(){initNavTree('gvnc__plugin_8c_source.html','');});
<div class="ttc" id="struct___g_vnc_plugin_data_html_affe57aeb733152c22661f2242d2c5db8"><div class="ttname"><a href="struct___g_vnc_plugin_data.html#affe57aeb733152c22661f2242d2c5db8">_GVncPluginData::depth_profile</a></div><div class="ttdeci">gint depth_profile</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8h_source.html#l00120">gvnc_plugin.h:120</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a2ab9e89fee63e4eab4e538ffbd86b756"><div class="ttname"><a href="gvnc__plugin_8c.html#a2ab9e89fee63e4eab4e538ffbd86b756">gvnc_plugin_open_connection</a></div><div class="ttdeci">static gboolean gvnc_plugin_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00741">gvnc_plugin.c:741</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="gvnc__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00905">gvnc_plugin.c:905</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a734f491f20072acdcbebb41e36bafe2f"><div class="ttname"><a href="struct___remmina_plugin_service.html#a734f491f20072acdcbebb41e36bafe2f">_RemminaPluginService::protocol_plugin_desktop_resize</a></div><div class="ttdeci">void(* protocol_plugin_desktop_resize)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00190">plugin.h:190</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
<div class="ttc" id="struct___g_vnc_plugin_data_html_ae5eb52954916f69fba44f0783cfdd506"><div class="ttname"><a href="struct___g_vnc_plugin_data.html#ae5eb52954916f69fba44f0783cfdd506">_GVncPluginData::vnc</a></div><div class="ttdeci">GtkWidget * vnc</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8h_source.html#l00114">gvnc_plugin.h:114</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a16685eea158879e41b101ca3634de462a8d325b6ea65f8d4d9888222b3f2180ae"><div class="ttname"><a href="gvnc__plugin_8c.html#a16685eea158879e41b101ca3634de462a8d325b6ea65f8d4d9888222b3f2180ae">GVNC_PLUGIN_FEATURE_TOOL_SENDCTRLALTF10</a></div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00067">gvnc_plugin.c:67</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
<div class="ttc" id="struct___g_vnc_plugin_data_html_a7f66a24811aa00909de794c47e89d071"><div class="ttname"><a href="struct___g_vnc_plugin_data.html#a7f66a24811aa00909de794c47e89d071">_GVncPluginData::fd</a></div><div class="ttdeci">gint fd</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8h_source.html#l00126">gvnc_plugin.h:126</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ac892dd297fae87868752a1f86e07937d"><div class="ttname"><a href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">_RemminaPluginService::protocol_plugin_init_get_username</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_username)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00194">plugin.h:194</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="gvnc__plugin_8c_html_a16685eea158879e41b101ca3634de462a757b14f4891073b2e1bb6f32b361fe90"><div class="ttname"><a href="gvnc__plugin_8c.html#a16685eea158879e41b101ca3634de462a757b14f4891073b2e1bb6f32b361fe90">GVNC_PLUGIN_FEATURE_TOOL_SENDCTRLALTF2</a></div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8c_source.html#l00059">gvnc_plugin.c:59</a></div></div>
<div class="ttc" id="struct___g_vnc_plugin_data_html_a87deacc499a3b37393c555f5cac9995e"><div class="ttname"><a href="struct___g_vnc_plugin_data.html#a87deacc499a3b37393c555f5cac9995e">_GVncPluginData::shared</a></div><div class="ttdeci">gint shared</div><div class="ttdef"><b>Definition:</b> <a href="gvnc__plugin_8h_source.html#l00121">gvnc_plugin.h:121</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ad98eaa3efc0214bc701dc66b5730e174"><div class="ttname"><a href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">_RemminaPluginService::protocol_plugin_init_get_password</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_password)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00195">plugin.h:195</a></div></div>
diff --git a/public/navtreedata.js b/public/navtreedata.js
index 575a79dfe..33c090cb9 100644
--- a/public/navtreedata.js
+++ b/public/navtreedata.js
@@ -93,19 +93,19 @@ var NAVTREEINDEX =
"rcw_8c.html#a82c93bbb1ab73807b366b86928c37946",
"rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f",
"remmina__crypt_8c.html#a3fe2fa245d401146adf02a3a8f996ab9",
-"remmina__ftp__client_8c.html#a3cb68d802d3c35dff5cee970d3c33bd5",
-"remmina__main_8c.html#ab203476099a5ad6e889f91c8e05d577d",
-"remmina__pref_8c.html#a0dd25f5b3a055b936a5fa327bc71f19c",
-"remmina__protocol__widget_8h.html#a2506e80d482c34532d0e534856452069",
-"remmina__ssh_8c.html#af39f90e2343e62348226aed0d7496dda",
-"remmina__utils_8h.html#a116e7cd4565386fe531d3a6d1a3d3730",
-"struct___remmina_color_pref.html#a675a8004488715429fa540dffb330d49",
-"struct___remmina_plugin_service.html#a4558dbff70064da3de58a6d684611fad",
-"struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e",
-"struct___remmina_s_f_t_p_client_class.html",
-"structmpchanger__params.html",
-"structrf__context.html#ac1f3330674d320c9d0ae408c551be6b8",
-"www__plugin_8c.html#abc7a556e81fb1152b1e9bc68406b983f"
+"remmina__ftp__client_8c.html#a3872b49a2c0bea73d51d0500c5cee488",
+"remmina__main_8c.html#ab08aae433b625c3a84330630fe2bd2d5",
+"remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05",
+"remmina__protocol__widget_8h.html#a1cae52cad394f317c712eb4fd709d261",
+"remmina__ssh_8c.html#ad6f3f5c196175412049af0c440414e65",
+"remmina__utils_8h.html",
+"struct___remmina_color_pref.html#a5ae99dc78a80baa14e0407983077c500",
+"struct___remmina_plugin_service.html#a434bf35a11eea8a5b653ffd8c7823d84",
+"struct___remmina_pref.html#a90e0cfac442b9e50e0f4857b3ff74255",
+"struct___remmina_s_f_t_p_client.html#ab74654f5e47c939e1098c183a582023c",
+"structlsb__distro__info.html#a251763a49054183774e2082595537e47",
+"structrf__context.html#aafce196b029d2578151275acd07ccb82",
+"www__plugin_8c.html#aaa970cf06dde51601b91b8d6f936b7ed"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/public/navtreeindex0.js b/public/navtreeindex0.js
index c7143ff89..ca4c0c095 100644
--- a/public/navtreeindex0.js
+++ b/public/navtreeindex0.js
@@ -119,8 +119,8 @@ var NAVTREEINDEX0 =
"globals_eval_w.html":[61,1,5,14],
"globals_eval_x.html":[61,1,5,15],
"globals_f.html":[61,1,0,6],
-"globals_func.html":[61,1,1,0],
"globals_func.html":[61,1,1],
+"globals_func.html":[61,1,1,0],
"globals_func_a.html":[61,1,1,1],
"globals_func_b.html":[61,1,1,2],
"globals_func_c.html":[61,1,1,3],
@@ -161,8 +161,8 @@ var NAVTREEINDEX0 =
"globals_type.html":[61,1,3],
"globals_u.html":[61,1,0,21],
"globals_v.html":[61,1,0,22],
-"globals_vars.html":[61,1,2,0],
"globals_vars.html":[61,1,2],
+"globals_vars.html":[61,1,2,0],
"globals_vars_a.html":[61,1,2,1],
"globals_vars_b.html":[61,1,2,2],
"globals_vars_c.html":[61,1,2,3],
diff --git a/public/navtreeindex10.js b/public/navtreeindex10.js
index 44d0957e2..d469d9045 100644
--- a/public/navtreeindex10.js
+++ b/public/navtreeindex10.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX10 =
{
+"remmina__ssh_8c.html#ad6f3f5c196175412049af0c440414e65":[61,0,133,7],
+"remmina__ssh_8c.html#adfe0e9338fec4a1c03677595c15514d1":[61,0,133,18],
"remmina__ssh_8c.html#af39f90e2343e62348226aed0d7496dda":[61,0,133,19],
"remmina__ssh_8c_source.html":[61,0,133],
"remmina__ssh_8h.html":[61,0,134],
@@ -247,7 +249,5 @@ var NAVTREEINDEX10 =
"remmina__utils_8c.html#af1acfeca84e3efd47ab1ef8365f94f99":[61,0,149,14],
"remmina__utils_8c.html#afe83bd0997a1054045e17d3f66c8bb0d":[61,0,149,19],
"remmina__utils_8c.html#aff7d3597f23cae366973218cc01a2ae8":[61,0,149,4],
-"remmina__utils_8c_source.html":[61,0,149],
-"remmina__utils_8h.html":[61,0,150],
-"remmina__utils_8h.html#a0f10e190a6dd212fcb0cf36ce81c8324":[61,0,150,5]
+"remmina__utils_8c_source.html":[61,0,149]
};
diff --git a/public/navtreeindex11.js b/public/navtreeindex11.js
index 4c1181147..2638d8197 100644
--- a/public/navtreeindex11.js
+++ b/public/navtreeindex11.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX11 =
{
+"remmina__utils_8h.html":[61,0,150],
+"remmina__utils_8h.html#a0f10e190a6dd212fcb0cf36ce81c8324":[61,0,150,5],
"remmina__utils_8h.html#a116e7cd4565386fe531d3a6d1a3d3730":[61,0,150,2],
"remmina__utils_8h.html#a2b4dbb0da7c8ba4bd86877097b85d10c":[61,0,150,6],
"remmina__utils_8h.html#a3ce53eeb3b090f86cfcdbce3e7cf71be":[61,0,150,11],
@@ -247,7 +249,5 @@ var NAVTREEINDEX11 =
"struct___remmina_color_pref.html#a2d0facd5a0480a450d525ce9ef4fed60":[60,0,15,12],
"struct___remmina_color_pref.html#a3a897d3fdc112fd9f96d2363f4094fc4":[60,0,15,9],
"struct___remmina_color_pref.html#a3f12bdb761d7c3ee02c0871aa423bcd1":[60,0,15,17],
-"struct___remmina_color_pref.html#a4ad947d133d2aa2c94756aacb5031e79":[60,0,15,7],
-"struct___remmina_color_pref.html#a5ae99dc78a80baa14e0407983077c500":[60,0,15,18],
-"struct___remmina_color_pref.html#a5d92875f0034e5fc3d360d97d5992bd4":[60,0,15,15]
+"struct___remmina_color_pref.html#a4ad947d133d2aa2c94756aacb5031e79":[60,0,15,7]
};
diff --git a/public/navtreeindex12.js b/public/navtreeindex12.js
index 714a94205..827cad889 100644
--- a/public/navtreeindex12.js
+++ b/public/navtreeindex12.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX12 =
{
+"struct___remmina_color_pref.html#a5ae99dc78a80baa14e0407983077c500":[60,0,15,18],
+"struct___remmina_color_pref.html#a5d92875f0034e5fc3d360d97d5992bd4":[60,0,15,15],
"struct___remmina_color_pref.html#a675a8004488715429fa540dffb330d49":[60,0,15,0],
"struct___remmina_color_pref.html#a8c109e8479617a5e6da0fcaccf511c60":[60,0,15,8],
"struct___remmina_color_pref.html#a8d7f02ac9b6890ad675b702708bc4af9":[60,0,15,13],
@@ -247,7 +249,5 @@ var NAVTREEINDEX12 =
"struct___remmina_plugin_service.html#a3e05115143ed8a545605a25a497a2db5":[60,0,43,93],
"struct___remmina_plugin_service.html#a402cb9bb28e67cec7f643968767453cb":[60,0,43,117],
"struct___remmina_plugin_service.html#a40855f4643654a7f2a88f72008ea0b5e":[60,0,43,91],
-"struct___remmina_plugin_service.html#a42ca6bc7a62f91efdba93cde19b347ce":[60,0,43,122],
-"struct___remmina_plugin_service.html#a434bf35a11eea8a5b653ffd8c7823d84":[60,0,43,98],
-"struct___remmina_plugin_service.html#a45416583767fafcac3fe3a9ac50d400f":[60,0,43,105]
+"struct___remmina_plugin_service.html#a42ca6bc7a62f91efdba93cde19b347ce":[60,0,43,122]
};
diff --git a/public/navtreeindex13.js b/public/navtreeindex13.js
index 36c7badcb..698af4fe6 100644
--- a/public/navtreeindex13.js
+++ b/public/navtreeindex13.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX13 =
{
+"struct___remmina_plugin_service.html#a434bf35a11eea8a5b653ffd8c7823d84":[60,0,43,98],
+"struct___remmina_plugin_service.html#a45416583767fafcac3fe3a9ac50d400f":[60,0,43,105],
"struct___remmina_plugin_service.html#a4558dbff70064da3de58a6d684611fad":[60,0,43,68],
"struct___remmina_plugin_service.html#a46433bff9d6f3ea25b67115031e94e9b":[60,0,43,90],
"struct___remmina_plugin_service.html#a48651c1147371e7e9069eb1fd06a9e4f":[60,0,43,3],
@@ -247,7 +249,5 @@ var NAVTREEINDEX13 =
"struct___remmina_pref.html#a887cbbd379d159cd0ac1acea7173d07b":[60,0,54,52],
"struct___remmina_pref.html#a8cbf300dc913d51365c93f928e0d02fd":[60,0,54,24],
"struct___remmina_pref.html#a8edfd2a9a9a06b1fd876fbe8742b9ff6":[60,0,54,34],
-"struct___remmina_pref.html#a901034949132f369eb34c4f1ded3a0a6":[60,0,54,84],
-"struct___remmina_pref.html#a90e0cfac442b9e50e0f4857b3ff74255":[60,0,54,83],
-"struct___remmina_pref.html#a920221c2f304bfa278d0944bbbb6e011":[60,0,54,10]
+"struct___remmina_pref.html#a901034949132f369eb34c4f1ded3a0a6":[60,0,54,84]
};
diff --git a/public/navtreeindex14.js b/public/navtreeindex14.js
index 08b832cb1..f66d23c12 100644
--- a/public/navtreeindex14.js
+++ b/public/navtreeindex14.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX14 =
{
+"struct___remmina_pref.html#a90e0cfac442b9e50e0f4857b3ff74255":[60,0,54,83],
+"struct___remmina_pref.html#a920221c2f304bfa278d0944bbbb6e011":[60,0,54,10],
"struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e":[60,0,54,22],
"struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f":[60,0,54,19],
"struct___remmina_pref.html#a994425a04b78282ff40a05580cc9355c":[60,0,54,29],
@@ -247,7 +249,5 @@ var NAVTREEINDEX14 =
"struct___remmina_s_f_t_p_client.html#a1f66c9db34816532a1c12de30c57f210":[60,0,70,1],
"struct___remmina_s_f_t_p_client.html#a42cfd0524388c2c05ea4b926dbe966e1":[60,0,70,0],
"struct___remmina_s_f_t_p_client.html#a6c056e13ab45261dc4f07720910f3270":[60,0,70,3],
-"struct___remmina_s_f_t_p_client.html#a95d95acad60636dd6c45ca93620d1f5b":[60,0,70,4],
-"struct___remmina_s_f_t_p_client.html#ab74654f5e47c939e1098c183a582023c":[60,0,70,2],
-"struct___remmina_s_f_t_p_client.html#ad6c612bb5172905eb63bfd5b672e1875":[60,0,70,5]
+"struct___remmina_s_f_t_p_client.html#a95d95acad60636dd6c45ca93620d1f5b":[60,0,70,4]
};
diff --git a/public/navtreeindex15.js b/public/navtreeindex15.js
index 72fd6ca9a..6a26c5bff 100644
--- a/public/navtreeindex15.js
+++ b/public/navtreeindex15.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX15 =
{
+"struct___remmina_s_f_t_p_client.html#ab74654f5e47c939e1098c183a582023c":[60,0,70,2],
+"struct___remmina_s_f_t_p_client.html#ad6c612bb5172905eb63bfd5b672e1875":[60,0,70,5],
"struct___remmina_s_f_t_p_client_class.html":[60,0,71],
"struct___remmina_s_f_t_p_client_class.html#ac7786b1cfca2fcc92c85f10e4939f80d":[60,0,71,0],
"struct___remmina_s_s_h.html":[60,0,72],
@@ -247,7 +249,5 @@ var NAVTREEINDEX15 =
"structitem.html#a86aaa250b539e47685bae65032af9ce7":[60,0,85,2],
"structitem.html#a975a1b37d9e003e1abb2a505474894b5":[60,0,85,3],
"structitem.html#adb779965c903bb950d429e90ebce3162":[60,0,85,1],
-"structlsb__distro__info.html":[60,0,86],
-"structlsb__distro__info.html#a251763a49054183774e2082595537e47":[60,0,86,0],
-"structlsb__distro__info.html#a7aba92d963bcaed1a5dda7b7be4fa6d7":[60,0,86,1]
+"structlsb__distro__info.html":[60,0,86]
};
diff --git a/public/navtreeindex16.js b/public/navtreeindex16.js
index 9ebfee339..ec13e2940 100644
--- a/public/navtreeindex16.js
+++ b/public/navtreeindex16.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX16 =
{
+"structlsb__distro__info.html#a251763a49054183774e2082595537e47":[60,0,86,0],
+"structlsb__distro__info.html#a7aba92d963bcaed1a5dda7b7be4fa6d7":[60,0,86,1],
"structmpchanger__params.html":[60,0,87],
"structmpchanger__params.html#a00a888f26c1609e064367bb5095c71f4":[60,0,87,13],
"structmpchanger__params.html#a098952d194a183d4a505aa065797864b":[60,0,87,16],
@@ -247,7 +249,5 @@ var NAVTREEINDEX16 =
"structrf__context.html#aa0b949ab1e2f06b7d5efeccc924efaee":[60,0,113,32],
"structrf__context.html#aa13bb4f72f3024d81e9051de4bd65ec0":[60,0,113,6],
"structrf__context.html#aa574515edb4966117f539d26e26f0a62":[60,0,113,46],
-"structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec":[60,0,113,34],
-"structrf__context.html#aafce196b029d2578151275acd07ccb82":[60,0,113,24],
-"structrf__context.html#ab5ffc4d8ba9d3d8a298414dc8e4efd2a":[60,0,113,30]
+"structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec":[60,0,113,34]
};
diff --git a/public/navtreeindex17.js b/public/navtreeindex17.js
index 3c124bbb3..0ddad4bfe 100644
--- a/public/navtreeindex17.js
+++ b/public/navtreeindex17.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX17 =
{
+"structrf__context.html#aafce196b029d2578151275acd07ccb82":[60,0,113,24],
+"structrf__context.html#ab5ffc4d8ba9d3d8a298414dc8e4efd2a":[60,0,113,30],
"structrf__context.html#ac1f3330674d320c9d0ae408c551be6b8":[60,0,113,50],
"structrf__context.html#acacad775c2c168f900deaa6c90481319":[60,0,113,51],
"structrf__context.html#acee2095e72fb2428c498f62e21800026":[60,0,113,15],
@@ -115,19 +117,20 @@ var NAVTREEINDEX17 =
"types_8h.html#ade886ceb4d246765dc78cdc7fbabeb74":[61,0,163,5],
"types_8h.html#ae8d4366a0a98ae5f9b20ead637e73ac8":[61,0,163,8],
"types_8h.html#aee1a3e130e6991978acd907b52204350":[61,0,163,14],
-"types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d":[61,0,163,14,7],
-"types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91":[61,0,163,14,13],
-"types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da":[61,0,163,14,10],
-"types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f":[61,0,163,14,9],
+"types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d":[61,0,163,14,8],
+"types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d":[61,0,163,14,4],
+"types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91":[61,0,163,14,14],
+"types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da":[61,0,163,14,11],
+"types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f":[61,0,163,14,10],
"types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92":[61,0,163,14,1],
-"types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f":[61,0,163,14,11],
-"types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296":[61,0,163,14,5],
+"types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f":[61,0,163,14,12],
+"types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296":[61,0,163,14,6],
"types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba":[61,0,163,14,3],
-"types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11":[61,0,163,14,6],
-"types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583":[61,0,163,14,12],
+"types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11":[61,0,163,14,7],
+"types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583":[61,0,163,14,13],
"types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3":[61,0,163,14,0],
-"types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425":[61,0,163,14,4],
-"types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5":[61,0,163,14,8],
+"types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425":[61,0,163,14,5],
+"types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5":[61,0,163,14,9],
"types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa":[61,0,163,14,2],
"types_8h.html#aeea5ee1e675368413b6f6ab09883e7de":[61,0,163,17],
"types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946":[61,0,163,17,2],
@@ -246,8 +249,5 @@ var NAVTREEINDEX17 =
"www__plugin_8c.html#a73ffad7289c2476a04d7270fa340bee9":[61,0,169,1],
"www__plugin_8c.html#a9323d1142816fbac8f87545a398a0f71":[61,0,169,10],
"www__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7":[61,0,169,22],
-"www__plugin_8c.html#a98eddc35144b89bce2e247d5ea49177b":[61,0,169,17],
-"www__plugin_8c.html#aaa970cf06dde51601b91b8d6f936b7ed":[61,0,169,6],
-"www__plugin_8c.html#aab3ceb1ae095823fcbee98ce2811b374":[61,0,169,7],
-"www__plugin_8c.html#ab0a82693798a5534d8657ba9f7634057":[61,0,169,15]
+"www__plugin_8c.html#a98eddc35144b89bce2e247d5ea49177b":[61,0,169,17]
};
diff --git a/public/navtreeindex18.js b/public/navtreeindex18.js
index 5716c9126..8f8261a8b 100644
--- a/public/navtreeindex18.js
+++ b/public/navtreeindex18.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX18 =
{
+"www__plugin_8c.html#aaa970cf06dde51601b91b8d6f936b7ed":[61,0,169,6],
+"www__plugin_8c.html#aab3ceb1ae095823fcbee98ce2811b374":[61,0,169,7],
+"www__plugin_8c.html#ab0a82693798a5534d8657ba9f7634057":[61,0,169,15],
"www__plugin_8c.html#abc7a556e81fb1152b1e9bc68406b983f":[61,0,169,12],
"www__plugin_8c.html#ac6b72af8913086b2ec590a675473f2a1":[61,0,169,23],
"www__plugin_8c.html#adb58ee650d75d952dd5802fbba9e9b0e":[61,0,169,9],
diff --git a/public/navtreeindex5.js b/public/navtreeindex5.js
index 986248a73..081b67874 100644
--- a/public/navtreeindex5.js
+++ b/public/navtreeindex5.js
@@ -139,59 +139,61 @@ var NAVTREEINDEX5 =
"remmina__file_8h.html#afd8b12f3d84b4e201b9f465d5b8e0d03":[61,0,79,11],
"remmina__file_8h_source.html":[61,0,79],
"remmina__file__editor_8c.html":[61,0,80],
-"remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4":[61,0,80,21],
-"remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06":[61,0,80,33],
-"remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb":[61,0,80,3],
-"remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11":[61,0,80,45],
-"remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b":[61,0,80,26],
-"remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6":[61,0,80,8],
-"remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16":[61,0,80,42],
-"remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056":[61,0,80,27],
-"remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea":[61,0,80,13],
-"remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb":[61,0,80,43],
-"remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a":[61,0,80,49],
-"remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4":[61,0,80,2],
-"remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583":[61,0,80,15],
-"remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e":[61,0,80,41],
-"remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9":[61,0,80,47],
-"remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38":[61,0,80,6],
-"remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f":[61,0,80,24],
-"remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d":[61,0,80,19],
-"remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25":[61,0,80,37],
-"remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b":[61,0,80,5],
-"remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b":[61,0,80,39],
-"remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019":[61,0,80,46],
-"remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca":[61,0,80,51],
-"remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0":[61,0,80,22],
-"remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80":[61,0,80,11],
-"remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7":[61,0,80,44],
-"remmina__file__editor_8c.html#a9afd8d41c66f547320930eb331f3124d":[61,0,80,28],
-"remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c":[61,0,80,7],
-"remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0":[61,0,80,29],
-"remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05":[61,0,80,1],
-"remmina__file__editor_8c.html#aa4e8657ca722e4cce3f3c42c0cfec51e":[61,0,80,31],
-"remmina__file__editor_8c.html#aa5c50852f8569f075eec5d5db30c2ebf":[61,0,80,32],
-"remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea":[61,0,80,34],
-"remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3":[61,0,80,36],
-"remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7":[61,0,80,52],
-"remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb":[61,0,80,35],
-"remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa":[61,0,80,9],
-"remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23":[61,0,80,20],
+"remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4":[61,0,80,23],
+"remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06":[61,0,80,35],
+"remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb":[61,0,80,4],
+"remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11":[61,0,80,47],
+"remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b":[61,0,80,28],
+"remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6":[61,0,80,10],
+"remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16":[61,0,80,44],
+"remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056":[61,0,80,29],
+"remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6":[61,0,80,1],
+"remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea":[61,0,80,15],
+"remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb":[61,0,80,45],
+"remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a":[61,0,80,51],
+"remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4":[61,0,80,3],
+"remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583":[61,0,80,17],
+"remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e":[61,0,80,43],
+"remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9":[61,0,80,49],
+"remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38":[61,0,80,7],
+"remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f":[61,0,80,26],
+"remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586":[61,0,80,8],
+"remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d":[61,0,80,21],
+"remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25":[61,0,80,39],
+"remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b":[61,0,80,6],
+"remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b":[61,0,80,41],
+"remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019":[61,0,80,48],
+"remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca":[61,0,80,53],
+"remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0":[61,0,80,24],
+"remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80":[61,0,80,13],
+"remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7":[61,0,80,46],
+"remmina__file__editor_8c.html#a9afd8d41c66f547320930eb331f3124d":[61,0,80,30],
+"remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c":[61,0,80,9],
+"remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0":[61,0,80,31],
+"remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05":[61,0,80,2],
+"remmina__file__editor_8c.html#aa4e8657ca722e4cce3f3c42c0cfec51e":[61,0,80,33],
+"remmina__file__editor_8c.html#aa5c50852f8569f075eec5d5db30c2ebf":[61,0,80,34],
+"remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea":[61,0,80,36],
+"remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3":[61,0,80,38],
+"remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7":[61,0,80,54],
+"remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb":[61,0,80,37],
+"remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa":[61,0,80,11],
+"remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23":[61,0,80,22],
"remmina__file__editor_8c.html#abb7466f51c11427405a54c94767a52de":[61,0,80,0],
-"remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad":[61,0,80,40],
-"remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0":[61,0,80,12],
-"remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9":[61,0,80,50],
-"remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a":[61,0,80,17],
-"remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257":[61,0,80,4],
-"remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5":[61,0,80,48],
-"remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556":[61,0,80,14],
-"remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f":[61,0,80,25],
-"remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7":[61,0,80,23],
-"remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965":[61,0,80,10],
-"remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae":[61,0,80,18],
-"remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5":[61,0,80,16],
-"remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b":[61,0,80,30],
-"remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6":[61,0,80,38],
+"remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad":[61,0,80,42],
+"remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0":[61,0,80,14],
+"remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9":[61,0,80,52],
+"remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a":[61,0,80,19],
+"remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257":[61,0,80,5],
+"remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5":[61,0,80,50],
+"remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556":[61,0,80,16],
+"remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f":[61,0,80,27],
+"remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7":[61,0,80,25],
+"remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965":[61,0,80,12],
+"remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae":[61,0,80,20],
+"remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5":[61,0,80,18],
+"remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b":[61,0,80,32],
+"remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6":[61,0,80,40],
"remmina__file__editor_8c_source.html":[61,0,80],
"remmina__file__editor_8h.html":[61,0,81],
"remmina__file__editor_8h.html#a08327d6951c345808628dbb5784aba06":[61,0,81,10],
@@ -247,7 +249,5 @@ var NAVTREEINDEX5 =
"remmina__ftp__client_8c.html#a28b9006fa53e21e48df9237d68a847f3":[61,0,86,49],
"remmina__ftp__client_8c.html#a2aaef09531b1694c183a5ba530fcc2fa":[61,0,86,45],
"remmina__ftp__client_8c.html#a2e39a69f60d38b46bc603df0ae368aed":[61,0,86,21],
-"remmina__ftp__client_8c.html#a33e4993b60c36eae89a6a0a943d28141":[61,0,86,43],
-"remmina__ftp__client_8c.html#a3872b49a2c0bea73d51d0500c5cee488":[61,0,86,16],
-"remmina__ftp__client_8c.html#a3a2dc5070f06ae0fcd25fbfe1587ab5c":[61,0,86,33]
+"remmina__ftp__client_8c.html#a33e4993b60c36eae89a6a0a943d28141":[61,0,86,43]
};
diff --git a/public/navtreeindex6.js b/public/navtreeindex6.js
index 152931c29..2d26b408c 100644
--- a/public/navtreeindex6.js
+++ b/public/navtreeindex6.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX6 =
{
+"remmina__ftp__client_8c.html#a3872b49a2c0bea73d51d0500c5cee488":[61,0,86,16],
+"remmina__ftp__client_8c.html#a3a2dc5070f06ae0fcd25fbfe1587ab5c":[61,0,86,33],
"remmina__ftp__client_8c.html#a3cb68d802d3c35dff5cee970d3c33bd5":[61,0,86,61],
"remmina__ftp__client_8c.html#a437dba2fc4f44f119501e9b53c688dd1":[61,0,86,25],
"remmina__ftp__client_8c.html#a49d1fee26f8c7fb210b46d83f92b08e2":[61,0,86,13],
@@ -247,7 +249,5 @@ var NAVTREEINDEX6 =
"remmina__main_8c.html#aac0bb51159be042fecab0103e73a54dc":[61,0,94,38],
"remmina__main_8c.html#aac3aa116a8d8b527f1aa61b7395b4b32":[61,0,94,54],
"remmina__main_8c.html#aac3fe305e456dfa7bb55aa2f057e8cb0":[61,0,94,85],
-"remmina__main_8c.html#aace9ecdd0b74d392ad6ed541bd605c1c":[61,0,94,90],
-"remmina__main_8c.html#ab08aae433b625c3a84330630fe2bd2d5":[61,0,94,83],
-"remmina__main_8c.html#ab0d22f0e3571eb80886acb0c68005800":[61,0,94,23]
+"remmina__main_8c.html#aace9ecdd0b74d392ad6ed541bd605c1c":[61,0,94,90]
};
diff --git a/public/navtreeindex7.js b/public/navtreeindex7.js
index 632e2ccb4..a7a962932 100644
--- a/public/navtreeindex7.js
+++ b/public/navtreeindex7.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX7 =
{
+"remmina__main_8c.html#ab08aae433b625c3a84330630fe2bd2d5":[61,0,94,83],
+"remmina__main_8c.html#ab0d22f0e3571eb80886acb0c68005800":[61,0,94,23],
"remmina__main_8c.html#ab203476099a5ad6e889f91c8e05d577d":[61,0,94,60],
"remmina__main_8c.html#ab2a1a54320992fb796850ffbd6a63589":[61,0,94,82],
"remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89":[61,0,94,92],
@@ -247,7 +249,5 @@ var NAVTREEINDEX7 =
"remmina__plugin__native_8h.html#a982cae6c913f388335a678c1070c924e":[61,0,114,1],
"remmina__plugin__native_8h.html#ae60c5371a41a83ef94c6a2b3dc8c9520":[61,0,114,0],
"remmina__plugin__native_8h_source.html":[61,0,114],
-"remmina__pref_8c.html":[61,0,115],
-"remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05":[61,0,115,7],
-"remmina__pref_8c.html#a0296a8f5b359547a0aa4cbffb914edd3":[61,0,115,6]
+"remmina__pref_8c.html":[61,0,115]
};
diff --git a/public/navtreeindex8.js b/public/navtreeindex8.js
index 32265d7b5..21ef78183 100644
--- a/public/navtreeindex8.js
+++ b/public/navtreeindex8.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX8 =
{
+"remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05":[61,0,115,7],
+"remmina__pref_8c.html#a0296a8f5b359547a0aa4cbffb914edd3":[61,0,115,6],
"remmina__pref_8c.html#a0dd25f5b3a055b936a5fa327bc71f19c":[61,0,115,19],
"remmina__pref_8c.html#a10b667eb7a100d6ac8d9544697f22743":[61,0,115,28],
"remmina__pref_8c.html#a12e52ee4ab89912280605e36ee069267":[61,0,115,9],
@@ -247,7 +249,5 @@ var NAVTREEINDEX8 =
"remmina__protocol__widget_8h.html#a14684e3222e6afb1b43d77634a174767":[61,0,120,81],
"remmina__protocol__widget_8h.html#a15368afcbeb770f8cf25941bd49e7b54":[61,0,120,65],
"remmina__protocol__widget_8h.html#a1585ea6908dd5c0a9b0f47d409916435":[61,0,120,39],
-"remmina__protocol__widget_8h.html#a172fa9cf2ce196c9846a3e47ea9036b4":[61,0,120,77],
-"remmina__protocol__widget_8h.html#a1cae52cad394f317c712eb4fd709d261":[61,0,120,72],
-"remmina__protocol__widget_8h.html#a2067c19b160eb43bddda6c6c6e8d6045":[61,0,120,35]
+"remmina__protocol__widget_8h.html#a172fa9cf2ce196c9846a3e47ea9036b4":[61,0,120,77]
};
diff --git a/public/navtreeindex9.js b/public/navtreeindex9.js
index c916661c6..886d54df6 100644
--- a/public/navtreeindex9.js
+++ b/public/navtreeindex9.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX9 =
{
+"remmina__protocol__widget_8h.html#a1cae52cad394f317c712eb4fd709d261":[61,0,120,72],
+"remmina__protocol__widget_8h.html#a2067c19b160eb43bddda6c6c6e8d6045":[61,0,120,35],
"remmina__protocol__widget_8h.html#a2506e80d482c34532d0e534856452069":[61,0,120,22],
"remmina__protocol__widget_8h.html#a2551dd6f53480609596d2695040fba5d":[61,0,120,78],
"remmina__protocol__widget_8h.html#a25bcb2ae99449624fed6f770218e3d25":[61,0,120,20],
@@ -247,7 +249,5 @@ var NAVTREEINDEX9 =
"remmina__ssh_8c.html#ab1ac2a91d14c557598f168f66ba130eb":[61,0,133,27],
"remmina__ssh_8c.html#ab6d8bdad543b3caead2b2b0339484798":[61,0,133,16],
"remmina__ssh_8c.html#ab8f07d5ab2ee8aa8423a11808b6cb100":[61,0,133,26],
-"remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553":[61,0,133,21],
-"remmina__ssh_8c.html#ad6f3f5c196175412049af0c440414e65":[61,0,133,7],
-"remmina__ssh_8c.html#adfe0e9338fec4a1c03677595c15514d1":[61,0,133,18]
+"remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553":[61,0,133,21]
};
diff --git a/public/plugin_8c.html b/public/plugin_8c.html
index e19e25fb1..4845c0cd9 100644
--- a/public/plugin_8c.html
+++ b/public/plugin_8c.html
@@ -242,7 +242,7 @@ Variables</h2></td></tr>
<div class="ttc" id="plugin_8c_html_ad7d68793cc9dfffacf0b5e7eda20ad61"><div class="ttname"><a href="plugin_8c.html#ad7d68793cc9dfffacf0b5e7eda20ad61">remmina_plugin_tool_init</a></div><div class="ttdeci">static void remmina_plugin_tool_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8c_source.html#l00044">plugin.c:44</a></div></div>
<div class="ttc" id="plugin_8c_html_a5109cffc255b24e5a596e94404811f50"><div class="ttname"><a href="plugin_8c.html#a5109cffc255b24e5a596e94404811f50">remmina_plugin_tool_open_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_tool_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8c_source.html#l00050">plugin.c:50</a></div></div>
<div class="ttc" id="plugin_8c_html_aeeb34fbeae9f4974869223f6dd83ddcb"><div class="ttname"><a href="plugin_8c.html#aeeb34fbeae9f4974869223f6dd83ddcb">remmina_plugin_tool_close_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_tool_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8c_source.html#l00063">plugin.c:63</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="plugin_8c_source.html#l00094">94</a> of file <a class="el" href="plugin_8c_source.html">plugin.c</a>.</p>
diff --git a/public/plugin_8c_source.html b/public/plugin_8c_source.html
index 103cef208..782256098 100644
--- a/public/plugin_8c_source.html
+++ b/public/plugin_8c_source.html
@@ -99,8 +99,8 @@ $(document).ready(function(){initNavTree('plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
<div class="ttc" id="plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8c_source.html#l00094">plugin.c:94</a></div></div>
<div class="ttc" id="plugin_8c_html_aeeb34fbeae9f4974869223f6dd83ddcb"><div class="ttname"><a href="plugin_8c.html#aeeb34fbeae9f4974869223f6dd83ddcb">remmina_plugin_tool_close_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_tool_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8c_source.html#l00063">plugin.c:63</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a4d39a5300472a230a65d44ac16391186"><div class="ttname"><a href="struct___remmina_plugin_service.html#a4d39a5300472a230a65d44ac16391186">_RemminaPluginService::protocol_plugin_emit_signal</a></div><div class="ttdeci">void(* protocol_plugin_emit_signal)(RemminaProtocolWidget *gp, const gchar *signal_name)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00179">plugin.h:179</a></div></div>
<div class="ttc" id="plugin_8c_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">static RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8c_source.html#l00041">plugin.c:41</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
diff --git a/public/plugin_8h_source.html b/public/plugin_8h_source.html
index 303d552b5..529f96eba 100644
--- a/public/plugin_8h_source.html
+++ b/public/plugin_8h_source.html
@@ -156,7 +156,7 @@ $(document).ready(function(){initNavTree('plugin_8h_source.html','');});
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a27b91829316685ba92e2fc1006eb8066"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a27b91829316685ba92e2fc1006eb8066">protocol_widget_set_width</a></div><div class="ttdeci">static PyObject * protocol_widget_set_width(PyRemminaProtocolWidget *self, PyObject *var_width)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00272">python_wrapper_protocol_widget.c:272</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_a8a4c7d195e85a1428abf82e952ff4df3"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#a8a4c7d195e85a1428abf82e952ff4df3">_RemminaProtocolPlugin::icon_name_ssh</a></div><div class="ttdeci">const gchar * icon_name_ssh</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00073">plugin.h:73</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a0875957a60fb9fe2367c4df83f8cb0db"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a0875957a60fb9fe2367c4df83f8cb0db">protocol_widget_set_display</a></div><div class="ttdeci">static PyObject * protocol_widget_set_display(PyRemminaProtocolWidget *self, PyObject *var_display)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00511">python_wrapper_protocol_widget.c:511</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a></div><div class="ttdeci">RemminaMessagePanelFlags</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00155">types.h:155</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a></div><div class="ttdeci">RemminaMessagePanelFlags</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_acd13d4ae2df9929ecfc18b559078605f"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#acd13d4ae2df9929ecfc18b559078605f">protocol_widget_set_expand</a></div><div class="ttdeci">static PyObject * protocol_widget_set_expand(PyRemminaProtocolWidget *self, PyObject *var_expand)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00342">python_wrapper_protocol_widget.c:342</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757">REMMINA_PLUGIN_TYPE_PREF</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00051">plugin.h:51</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a133d75375f0a9c7e94d24f77d612b4a1"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a133d75375f0a9c7e94d24f77d612b4a1">protocol_widget_chat_open</a></div><div class="ttdeci">static PyObject * protocol_widget_chat_open(PyRemminaProtocolWidget *self, PyObject *var_name)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00771">python_wrapper_protocol_widget.c:771</a></div></div>
@@ -168,7 +168,7 @@ $(document).ready(function(){initNavTree('plugin_8h_source.html','');});
<div class="ttc" id="struct___remmina_tool_plugin_html_a9c2d66a167a088f071e545c1d656139e"><div class="ttname"><a href="struct___remmina_tool_plugin.html#a9c2d66a167a088f071e545c1d656139e">_RemminaToolPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00118">plugin.h:118</a></div></div>
<div class="ttc" id="struct___remmina_pref_plugin_html_a31f24f29db7e806ccf65f19fb88133b0"><div class="ttname"><a href="struct___remmina_pref_plugin.html#a31f24f29db7e806ccf65f19fb88133b0">_RemminaPrefPlugin::description</a></div><div class="ttdeci">const gchar * description</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00127">plugin.h:127</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a40af29e21c78512d834969103c29e71f"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a40af29e21c78512d834969103c29e71f">protocol_widget_get_width</a></div><div class="ttdeci">static PyObject * protocol_widget_get_width(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00264">python_wrapper_protocol_widget.c:264</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a></div><div class="ttdeci">RemminaProtocolSSHSetting</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00127">types.h:127</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a></div><div class="ttdeci">RemminaProtocolSSHSetting</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a276e1deec60e4d21ef331020ec5c98b9"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a276e1deec60e4d21ef331020ec5c98b9">protocol_widget_signal_connection_closed</a></div><div class="ttdeci">static PyObject * protocol_widget_signal_connection_closed(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00533">python_wrapper_protocol_widget.c:533</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
@@ -183,9 +183,9 @@ $(document).ready(function(){initNavTree('plugin_8h_source.html','');});
<div class="ttc" id="struct___remmina_tool_plugin_html_adcdd7f3020665461c0a95a47ac6675af"><div class="ttname"><a href="struct___remmina_tool_plugin.html#adcdd7f3020665461c0a95a47ac6675af">_RemminaToolPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00116">plugin.h:116</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a57bd5b61ad42a9fdd7e411fe6936ae29"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a57bd5b61ad42a9fdd7e411fe6936ae29">protocol_widget_get_expand</a></div><div class="ttdeci">static PyObject * protocol_widget_get_expand(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00334">python_wrapper_protocol_widget.c:334</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00206">remmina_log.c:206</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="plugin_8h_html_a59fee7dbde41c8d29059ca64622d1948"><div class="ttname"><a href="plugin_8h.html#a59fee7dbde41c8d29059ca64622d1948">RemminaPluginEntryFunc</a></div><div class="ttdeci">gboolean(* RemminaPluginEntryFunc)(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00307">plugin.h:307</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
<div class="ttc" id="struct___remmina_pref_plugin_html"><div class="ttname"><a href="struct___remmina_pref_plugin.html">_RemminaPrefPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00124">plugin.h:124</a></div></div>
<div class="ttc" id="plugin_8h_html_aec59d37943e501da2d7107c933865782"><div class="ttname"><a href="plugin_8h.html#aec59d37943e501da2d7107c933865782">RemminaSecretPlugin</a></div><div class="ttdeci">struct _RemminaSecretPlugin RemminaSecretPlugin</div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a16f983c5cfcacbbbb98a7dda5ffe9323"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a16f983c5cfcacbbbb98a7dda5ffe9323">protocol_widget_set_error</a></div><div class="ttdeci">static PyObject * protocol_widget_set_error(PyRemminaProtocolWidget *self, PyObject *var_msg)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00372">python_wrapper_protocol_widget.c:372</a></div></div>
diff --git a/public/python__wrapper__plugin_8c_source.html b/public/python__wrapper__plugin_8c_source.html
index f7d5ad218..866ce4445 100644
--- a/public/python__wrapper__plugin_8c_source.html
+++ b/public/python__wrapper__plugin_8c_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('python__wrapper__plugin_8c_source.html
<div class="ttc" id="python__wrapper__common_8c_html_aa8050eed89d57b629f2bc5a73f2182b6"><div class="ttname"><a href="python__wrapper__common_8c.html#aa8050eed89d57b629f2bc5a73f2182b6">python_wrapper_set_service</a></div><div class="ttdeci">void python_wrapper_set_service(RemminaPluginService *service)</div><div class="ttdoc">Sets the pointer to the plugin service of Remmina. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00194">python_wrapper_common.c:194</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a29088776dca1ebf198699d6ec2ea5e31"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a29088776dca1ebf198699d6ec2ea5e31">python_wrapper_protocol_widget_init</a></div><div class="ttdeci">void python_wrapper_protocol_widget_init(void)</div><div class="ttdoc">Initializes the widget backend of the protocol plugin implementation. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00242">python_wrapper_protocol_widget.c:242</a></div></div>
<div class="ttc" id="python__wrapper__plugin_8c_html_a56e5020de11446dbc23f3480e313f208"><div class="ttname"><a href="python__wrapper__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a></div><div class="ttdeci">G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__plugin_8c_source.html#l00195">python_wrapper_plugin.c:195</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a53b98f2a3ae805f5b1cbe72f0f2af62a"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a53b98f2a3ae805f5b1cbe72f0f2af62a">python_wrapper_module_init</a></div><div class="ttdeci">void python_wrapper_module_init(void)</div><div class="ttdoc">Initializes all globals and registers the &amp;#39;remmina&amp;#39; module in the Python engine. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00719">python_wrapper_remmina.c:719</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a53b98f2a3ae805f5b1cbe72f0f2af62a"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a53b98f2a3ae805f5b1cbe72f0f2af62a">python_wrapper_module_init</a></div><div class="ttdeci">void python_wrapper_module_init(void)</div><div class="ttdoc">Initializes all globals and registers the &amp;#39;remmina&amp;#39; module in the Python engine. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00720">python_wrapper_remmina.c:720</a></div></div>
<div class="ttc" id="python__wrapper__plugin_8c_html_ae2abb74183563726e9085156c50e60e4"><div class="ttname"><a href="python__wrapper__plugin_8c.html#ae2abb74183563726e9085156c50e60e4">remmina_python_wrapper</a></div><div class="ttdeci">static RemminaLanguageWrapperPlugin remmina_python_wrapper</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__plugin_8c_source.html#l00067">python_wrapper_plugin.c:67</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html"><div class="ttname"><a href="struct___remmina_plugin_service.html">_RemminaPluginService</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00165">plugin.h:165</a></div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/public/python__wrapper__protocol_8c_source.html b/public/python__wrapper__protocol_8c_source.html
index 9ac686b7e..78651c8a8 100644
--- a/public/python__wrapper__protocol_8c_source.html
+++ b/public/python__wrapper__protocol_8c_source.html
@@ -95,7 +95,7 @@ $(document).ready(function(){initNavTree('python__wrapper__protocol_8c_source.ht
<div class="ttc" id="python__wrapper__protocol_8c_html_aad6b25cbb7627180e6f3904a43ae7b89"><div class="ttname"><a href="python__wrapper__protocol_8c.html#aad6b25cbb7627180e6f3904a43ae7b89">remmina_protocol_init_wrapper</a></div><div class="ttdeci">void remmina_protocol_init_wrapper(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8c_source.html#l00062">python_wrapper_protocol.c:62</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_feature_html"><div class="ttname"><a href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a></div><div class="ttdoc">Wrapper for a Python object that contains a pointer to an instance of RemminaProtocolFeature. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00059">python_wrapper_protocol.h:59</a></div></div>
<div class="ttc" id="struct_py_remmina_plugin_screenshot_data_html"><div class="ttname"><a href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a></div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00072">python_wrapper_protocol.h:72</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a0029840116ce2b2c4d7870d202ce6459"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a></div><div class="ttdeci">void python_wrapper_to_protocol_setting(RemminaProtocolSetting *dest, PyObject *setting)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolSetting. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01092">python_wrapper_remmina.c:1092</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a0029840116ce2b2c4d7870d202ce6459"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a></div><div class="ttdeci">void python_wrapper_to_protocol_setting(RemminaProtocolSetting *dest, PyObject *setting)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolSetting. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01093">python_wrapper_remmina.c:1093</a></div></div>
<div class="ttc" id="struct_py_plugin_html"><div class="ttname"><a href="struct_py_plugin.html">PyPlugin</a></div><div class="ttdoc">Maps an instance of a Python plugin to a Remmina one. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00126">python_wrapper_common.h:126</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a11658eaccd360b5a1a5e037e9687a6d5"><div class="ttname"><a href="python__wrapper__common_8c.html#a11658eaccd360b5a1a5e037e9687a6d5">python_wrapper_check_attribute</a></div><div class="ttdeci">gboolean python_wrapper_check_attribute(PyObject *instance, const char *attr_name)</div><div class="ttdoc">Checks if a given attribute exists. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00139">python_wrapper_common.c:139</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_aa5727804eb3f5cd4a4a40acb98df76bb"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#aa5727804eb3f5cd4a4a40acb98df76bb">_RemminaProtocolPlugin::ssh_setting</a></div><div class="ttdeci">RemminaProtocolSSHSetting ssh_setting</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00076">plugin.h:76</a></div></div>
@@ -138,7 +138,7 @@ $(document).ready(function(){initNavTree('python__wrapper__protocol_8c_source.ht
<div class="ttc" id="struct___remmina_protocol_plugin_html_a92bb5524267ad4fe682fc07f778500d7"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#a92bb5524267ad4fe682fc07f778500d7">_RemminaProtocolPlugin::send_keystrokes</a></div><div class="ttdeci">void(* send_keystrokes)(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00084">plugin.h:84</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_ab3c15094a16418c5951c5382c8a44190"><div class="ttname"><a href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">_RemminaProtocolFeature::opt3</a></div><div class="ttdeci">gpointer opt3</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00077">types.h:77</a></div></div>
<div class="ttc" id="struct_py_plugin_html_a680f794a3909843ccb6d2e7ceeef8558"><div class="ttname"><a href="struct_py_plugin.html#a680f794a3909843ccb6d2e7ceeef8558">PyPlugin::generic_plugin</a></div><div class="ttdeci">RemminaPlugin * generic_plugin</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00134">python_wrapper_common.h:134</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a></div><div class="ttdeci">RemminaProtocolSSHSetting</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00127">types.h:127</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a></div><div class="ttdeci">RemminaProtocolSSHSetting</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a53df5c97849ff3ca9cdc5899b5fd4226"><div class="ttname"><a href="python__wrapper__common_8c.html#a53df5c97849ff3ca9cdc5899b5fd4226">ATTR_BASIC_SETTINGS</a></div><div class="ttdeci">const char * ATTR_BASIC_SETTINGS</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00067">python_wrapper_common.c:67</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
<div class="ttc" id="python__wrapper__protocol_8c_html_a5931951ae96e22e972c4a2a54c28af23"><div class="ttname"><a href="python__wrapper__protocol_8c.html#a5931951ae96e22e972c4a2a54c28af23">remmina_protocol_query_feature_wrapper</a></div><div class="ttdeci">gboolean remmina_protocol_query_feature_wrapper(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8c_source.html#l00093">python_wrapper_protocol.c:93</a></div></div>
@@ -148,17 +148,17 @@ $(document).ready(function(){initNavTree('python__wrapper__protocol_8c_source.ht
<div class="ttc" id="struct___remmina_protocol_feature_html_a4b8ffd6e32126a9c4d2074521279b12b"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b">_RemminaProtocolFeature::opt1_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt1_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00078">types.h:78</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_ac783acfaf93007d0100bd02f1faff7f0"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#ac783acfaf93007d0100bd02f1faff7f0">_RemminaProtocolPlugin::type</a></div><div class="ttdeci">RemminaPluginType type</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00066">plugin.h:66</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_acc352444c31929a1ef7aee2a0e37827d"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">_RemminaPluginScreenshotData::bitsPerPixel</a></div><div class="ttdeci">int bitsPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00085">types.h:85</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_adcfba1ab2eaa59395c7a4cb55436df9f"><div class="ttname"><a href="python__wrapper__common_8c.html#adcfba1ab2eaa59395c7a4cb55436df9f">ATTR_DESCRIPTION</a></div><div class="ttdeci">const char * ATTR_DESCRIPTION</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00063">python_wrapper_common.c:63</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_ad4b21147a7592bf689c9f761d9e4fdc2"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#ad4b21147a7592bf689c9f761d9e4fdc2">_RemminaProtocolPlugin::close_connection</a></div><div class="ttdeci">gboolean(* close_connection)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00081">plugin.h:81</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a0372848f85114d5c96be884c1be796ba"><div class="ttname"><a href="python__wrapper__common_8c.html#a0372848f85114d5c96be884c1be796ba">ATTR_ICON_NAME</a></div><div class="ttdeci">const char * ATTR_ICON_NAME</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00062">python_wrapper_common.c:62</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="python__wrapper__protocol_8h_html"><div class="ttname"><a href="python__wrapper__protocol_8h.html">python_wrapper_protocol.h</a></div><div class="ttdoc">Contains the specialisation of RemminaPluginFile plugins in Python. </div></div>
<div class="ttc" id="struct_py_generic_html_a0282ae57a7189fd68fad0d960b60cb7f"><div class="ttname"><a href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">PyGeneric::type_hint</a></div><div class="ttdeci">RemminaTypeHint type_hint</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00145">python_wrapper_common.h:145</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a006b0d6d883c6dd0da6c444991973ac7"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7">_RemminaProtocolFeature::opt2_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt2_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00079">types.h:79</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_aa7ac5ec9d95867734619583a2049e952"><div class="ttname"><a href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">_RemminaProtocolFeature::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00075">types.h:75</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_ad9cee26b804b78c89cd56e59d71b6250"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a></div><div class="ttdeci">void python_wrapper_to_protocol_feature(RemminaProtocolFeature *dest, PyObject *feature)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolFeature. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01108">python_wrapper_remmina.c:1108</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_ad9cee26b804b78c89cd56e59d71b6250"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a></div><div class="ttdeci">void python_wrapper_to_protocol_feature(RemminaProtocolFeature *dest, PyObject *feature)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolFeature. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01109">python_wrapper_remmina.c:1109</a></div></div>
<div class="ttc" id="python__wrapper__protocol_8c_html_a4ad3d2c8c8a65d787389b134ab716807"><div class="ttname"><a href="python__wrapper__protocol_8c.html#a4ad3d2c8c8a65d787389b134ab716807">remmina_protocol_unmap_event_wrapper</a></div><div class="ttdeci">gboolean remmina_protocol_unmap_event_wrapper(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8c_source.html#l00198">python_wrapper_protocol.c:198</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_ae0dc6952f8015848cf97950fcc7d9997"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#ae0dc6952f8015848cf97950fcc7d9997">_RemminaProtocolPlugin::map_event</a></div><div class="ttdeci">gboolean(* map_event)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00086">plugin.h:86</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_aa49520ac95b505c111abfb7f3b7c55de"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#aa49520ac95b505c111abfb7f3b7c55de">_RemminaProtocolPlugin::query_feature</a></div><div class="ttdeci">gboolean(* query_feature)(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00082">plugin.h:82</a></div></div>
diff --git a/public/python__wrapper__remmina_8c.html b/public/python__wrapper__remmina_8c.html
index ee119c9ac..e60129b49 100644
--- a/public/python__wrapper__remmina_8c.html
+++ b/public/python__wrapper__remmina_8c.html
@@ -508,7 +508,7 @@ Variables</h2></td></tr>
<p>Util function to check if a specific member is define in a Python object. </p>
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00737">737</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00738">738</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -546,7 +546,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00977">977</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00978">978</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -828,7 +828,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01143">1143</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01144">1144</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -866,7 +866,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00963">963</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00964">964</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -890,7 +890,7 @@ Variables</h2></td></tr>
<p>Initializes the 'remmina' module in the Python engine.</p>
<p>This </p>
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00719">719</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00720">720</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -999,7 +999,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01124">1124</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01125">1125</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1038,7 +1038,7 @@ Variables</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01108">1108</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01109">1109</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1077,7 +1077,7 @@ Variables</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01092">1092</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01093">1093</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1121,7 +1121,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01006">1006</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01007">1007</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1159,7 +1159,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00826">826</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00827">827</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1203,7 +1203,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00842">842</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00843">843</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1241,7 +1241,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01053">1053</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01054">1054</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1279,7 +1279,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01046">1046</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01047">1047</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1317,7 +1317,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00903">903</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00904">904</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1355,7 +1355,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00921">921</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00922">922</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1393,7 +1393,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00930">930</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00931">931</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1431,7 +1431,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00912">912</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00913">913</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1475,7 +1475,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00877">877</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00878">878</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1519,7 +1519,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00939">939</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00940">940</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1563,7 +1563,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00856">856</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00857">857</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1607,7 +1607,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01172">1172</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01173">1173</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1645,7 +1645,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01157">1157</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01158">1158</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1683,7 +1683,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01208">1208</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01209">1209</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1727,7 +1727,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01061">1061</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01062">1062</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1771,7 +1771,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01077">1077</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01078">1078</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1815,7 +1815,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01022">1022</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01023">1023</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1853,7 +1853,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00750">750</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00751">751</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -1897,7 +1897,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00991">991</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00992">992</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
diff --git a/public/python__wrapper__remmina_8c_source.html b/public/python__wrapper__remmina_8c_source.html
index 0b224f437..2403a6257 100644
--- a/public/python__wrapper__remmina_8c_source.html
+++ b/public/python__wrapper__remmina_8c_source.html
@@ -86,13 +86,13 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
<div class="title">python_wrapper_remmina.c</div> </div>
</div><!--header-->
<div class="contents">
-<a href="python__wrapper__remmina_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// I N C L U D E S</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__common_8h.html">python_wrapper_common.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="plugin_8h.html">remmina/plugin.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="types_8h.html">remmina/types.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__remmina_8h.html">python_wrapper_remmina.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__protocol__widget_8h.html">python_wrapper_protocol_widget.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__entry_8h.html">python_wrapper_entry.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__file_8h.html">python_wrapper_file.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__protocol_8h.html">python_wrapper_protocol.h</a>&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__tool_8h.html">python_wrapper_tool.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__secret_8h.html">python_wrapper_secret.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__pref_8h.html">python_wrapper_pref.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__remmina__file_8h.html">python_wrapper_remmina_file.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// D E C L A R A T I O N S</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;gboolean <a class="code" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a>(PyObject* instance, <span class="keyword">const</span> gchar* member);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5">python_wrapper_debug_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* msg);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549">remmina_register_plugin_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde">remmina_file_get_datadir_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e">remmina_file_new_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781">remmina_pref_set_value_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">remmina_pref_get_value_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">remmina_pref_get_scale_quality_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">remmina_pref_get_sshtunnel_port_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">remmina_pref_get_ssh_loglevel_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">remmina_pref_get_ssh_parseconfig_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">remmina_pref_keymap_get_keyval_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c">python_wrapper_log_print_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* arg);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">remmina_widget_pool_register_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135">rcw_open_from_file_full_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">remmina_public_get_server_port_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f">remmina_masterthread_exec_is_main_thread_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d">remmina_gtksocket_available_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">static</span> PyObject*</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">remmina_protocol_widget_get_profile_remote_height_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">static</span> PyObject*</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<a class="code" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">remmina_protocol_widget_get_profile_remote_width_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08">python_wrapper_show_dialog_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f">python_wrapper_get_mainwindow_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d">remmina_protocol_plugin_signal_connection_opened_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e">remmina_protocol_plugin_signal_connection_closed_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58">remmina_protocol_plugin_init_auth_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#adf58bae87972fe68fa239199e7ca6e1b"> 97</a></span>&#160;<span class="keyword">static</span> PyMethodDef <a class="code" href="python__wrapper__remmina_8c.html#adf58bae87972fe68fa239199e7ca6e1b">remmina_python_module_type_methods</a>[] = {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; { <span class="stringliteral">&quot;register_plugin&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549">remmina_register_plugin_wrapper</a>, METH_O, NULL },</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; { <span class="stringliteral">&quot;log_print&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c">python_wrapper_log_print_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; { <span class="stringliteral">&quot;debug&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5">python_wrapper_debug_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; { <span class="stringliteral">&quot;show_dialog&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08">python_wrapper_show_dialog_wrapper</a>, METH_VARARGS | METH_KEYWORDS,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; NULL },</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; { <span class="stringliteral">&quot;get_main_window&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f">python_wrapper_get_mainwindow_wrapper</a>, METH_NOARGS, NULL },</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; { <span class="stringliteral">&quot;get_datadir&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde">remmina_file_get_datadir_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; { <span class="stringliteral">&quot;file_new&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e">remmina_file_new_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; { <span class="stringliteral">&quot;pref_set_value&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781">remmina_pref_set_value_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; { <span class="stringliteral">&quot;pref_get_value&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">remmina_pref_get_value_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; { <span class="stringliteral">&quot;pref_get_scale_quality&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">remmina_pref_get_scale_quality_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; { <span class="stringliteral">&quot;pref_get_sshtunnel_port&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">remmina_pref_get_sshtunnel_port_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; { <span class="stringliteral">&quot;pref_get_ssh_loglevel&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">remmina_pref_get_ssh_loglevel_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; { <span class="stringliteral">&quot;pref_get_ssh_parseconfig&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">remmina_pref_get_ssh_parseconfig_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; { <span class="stringliteral">&quot;pref_keymap_get_keyval&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">remmina_pref_keymap_get_keyval_wrapper</a>, METH_VARARGS | METH_KEYWORDS,</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; NULL },</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; { <span class="stringliteral">&quot;widget_pool_register&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">remmina_widget_pool_register_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; { <span class="stringliteral">&quot;rcw_open_from_file_full&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135">rcw_open_from_file_full_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; { <span class="stringliteral">&quot;public_get_server_port&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">remmina_public_get_server_port_wrapper</a>, METH_VARARGS | METH_KEYWORDS,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; NULL },</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; { <span class="stringliteral">&quot;masterthread_exec_is_main_thread&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f">remmina_masterthread_exec_is_main_thread_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; { <span class="stringliteral">&quot;gtksocket_available&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d">remmina_gtksocket_available_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; { <span class="stringliteral">&quot;protocol_widget_get_profile_remote_width&quot;</span>,</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">remmina_protocol_widget_get_profile_remote_width_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; { <span class="stringliteral">&quot;protocol_widget_get_profile_remote_height&quot;</span>,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">remmina_protocol_widget_get_profile_remote_height_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; { <span class="stringliteral">&quot;protocol_plugin_signal_connection_opened&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d">remmina_protocol_plugin_signal_connection_opened_wrapper</a>,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; METH_VARARGS, NULL },</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; { <span class="stringliteral">&quot;protocol_plugin_signal_connection_closed&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e">remmina_protocol_plugin_signal_connection_closed_wrapper</a>,</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; METH_VARARGS, NULL },</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; { <span class="stringliteral">&quot;protocol_plugin_init_auth&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58">remmina_protocol_plugin_init_auth_wrapper</a>, METH_VARARGS | METH_KEYWORDS,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; NULL },</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/* Sentinel */</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; { NULL }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;};</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html"> 224</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;{</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; PyObject_HEAD</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#aab4ec78686dfde9ba9a234e218debe16"> 227</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350">RemminaProtocolSettingType</a> <a class="code" href="struct_py_remmina_protocol_setting.html#aab4ec78686dfde9ba9a234e218debe16">settingType</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b"> 228</a></span>&#160; gchar* <a class="code" href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b">name</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#a640447ed12db0bee967d350562eea55e"> 229</a></span>&#160; gchar* <a class="code" href="struct_py_remmina_protocol_setting.html#a640447ed12db0bee967d350562eea55e">label</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#a83f20deb4731925e29fff2a8a16535d6"> 230</a></span>&#160; gboolean <a class="code" href="struct_py_remmina_protocol_setting.html#a83f20deb4731925e29fff2a8a16535d6">compact</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#a79347dc9c1e71a2594b4df5e3576ad3a"> 231</a></span>&#160; PyObject* <a class="code" href="struct_py_remmina_protocol_setting.html#a79347dc9c1e71a2594b4df5e3576ad3a">opt1</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#a9816a20dd4999bfd2f3be57cae6c1888"> 232</a></span>&#160; PyObject* <a class="code" href="struct_py_remmina_protocol_setting.html#a9816a20dd4999bfd2f3be57cae6c1888">opt2</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;} <a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a822ee64f62b7bf7af738dfec34e69737"> 238</a></span>&#160;<span class="keyword">static</span> PyModuleDef <a class="code" href="python__wrapper__remmina_8c.html#a822ee64f62b7bf7af738dfec34e69737">remmina_python_module_type</a> = {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; PyModuleDef_HEAD_INIT,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; .m_name = <span class="stringliteral">&quot;remmina&quot;</span>,</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; .m_doc = <span class="stringliteral">&quot;Remmina API.&quot;</span>,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; .m_size = -1,</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; .m_methods = <a class="code" href="python__wrapper__remmina_8c.html#adf58bae87972fe68fa239199e7ca6e1b">remmina_python_module_type_methods</a></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;};</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// -- Python Object -&gt; Setting</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#adbec50426452678e9f7039a1df6cb9bf"> 252</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#adbec50426452678e9f7039a1df6cb9bf">python_protocol_setting_new</a>(PyTypeObject* type, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>* <span class="keyword">self</span> = (<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>*)type-&gt;tp_alloc(type, 0);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span> (!<span class="keyword">self</span>)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">self</span>-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b">name</a> = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">self</span>-&gt;label = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">self</span>-&gt;compact = FALSE;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">self</span>-&gt;opt1 = NULL;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">self</span>-&gt;opt2 = NULL;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">self</span>-&gt;settingType = 0;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> (PyObject*)<span class="keyword">self</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#acbfd9c330a98034bf5ea3253661c939e"> 277</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="python__wrapper__remmina_8c.html#acbfd9c330a98034bf5ea3253661c939e">python_protocol_setting_init</a>(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;{</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">static</span> gchar* kwlist[] = { <span class="stringliteral">&quot;type&quot;</span>, <span class="stringliteral">&quot;name&quot;</span>, <span class="stringliteral">&quot;label&quot;</span>, <span class="stringliteral">&quot;compact&quot;</span>, <span class="stringliteral">&quot;opt1&quot;</span>, <span class="stringliteral">&quot;opt2&quot;</span>, NULL };</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; PyObject* name;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; PyObject* label;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;|lOOpOO&quot;</span>, kwlist,</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; &amp;self-&gt;settingType, &amp;name, &amp;label, &amp;self-&gt;compact, &amp;self-&gt;opt1, &amp;self-&gt;opt2))</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; Py_ssize_t len = PyUnicode_GetLength(label);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span> (len == 0)</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">self</span>-&gt;label = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">self</span>-&gt;label = <a class="code" href="python__wrapper__common_8c.html#a685b2ce44daa9ed47ba4987b4183a0a2">python_wrapper_copy_string_from_python</a>(label, len);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span> (!self-&gt;label)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; g_printerr(<span class="stringliteral">&quot;Unable to extract label during initialization of Python settings module!\n&quot;</span>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; len = PyUnicode_GetLength(name);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (len == 0)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">self</span>-&gt;name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">self</span>-&gt;name = <a class="code" href="python__wrapper__common_8c.html#a685b2ce44daa9ed47ba4987b4183a0a2">python_wrapper_copy_string_from_python</a>(label, len);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (!self-&gt;name)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; g_printerr(<span class="stringliteral">&quot;Unable to extract name during initialization of Python settings module!\n&quot;</span>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a7ca6cc6c56f1e406e6c13788434b282c"> 324</a></span>&#160;<span class="keyword">static</span> PyMemberDef <a class="code" href="python__wrapper__remmina_8c.html#a7ca6cc6c56f1e406e6c13788434b282c">python_protocol_setting_type_members</a>[] = {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; { <span class="stringliteral">&quot;settingType&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, settingType), T_INT, 0, NULL },</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; { <span class="stringliteral">&quot;name&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, name), T_STRING, 0, NULL },</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; { <span class="stringliteral">&quot;label&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, label), T_STRING, 0, NULL },</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; { <span class="stringliteral">&quot;compact&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, compact), T_BOOL, 0, NULL },</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; { <span class="stringliteral">&quot;opt1&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, opt1), T_OBJECT, 0, NULL },</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; { <span class="stringliteral">&quot;opt2&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, opt2), T_OBJECT, 0, NULL },</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; { NULL }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;};</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824"> 334</a></span>&#160;<span class="keyword">static</span> PyTypeObject <a class="code" href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824">python_protocol_setting_type</a> = {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; PyVarObject_HEAD_INIT(NULL, 0)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; .tp_name = <span class="stringliteral">&quot;remmina.Setting&quot;</span>,</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; .tp_doc = <span class="stringliteral">&quot;Remmina Setting information&quot;</span>,</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; .tp_basicsize = <span class="keyword">sizeof</span>(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>),</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; .tp_itemsize = 0,</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; .tp_flags = Py_TPFLAGS_DEFAULT,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; .tp_new = <a class="code" href="python__wrapper__remmina_8c.html#adbec50426452678e9f7039a1df6cb9bf">python_protocol_setting_new</a>,</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; .tp_init = (initproc)<a class="code" href="python__wrapper__remmina_8c.html#acbfd9c330a98034bf5ea3253661c939e">python_protocol_setting_init</a>,</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; .tp_members = <a class="code" href="python__wrapper__remmina_8c.html#a7ca6cc6c56f1e406e6c13788434b282c">python_protocol_setting_type_members</a></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;};</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment">// -- Python Type -&gt; Feature</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad32c23fde1f6d93382853fed97c51885"> 349</a></span>&#160;<span class="keyword">static</span> PyMemberDef <a class="code" href="python__wrapper__remmina_8c.html#ad32c23fde1f6d93382853fed97c51885">python_protocol_feature_members</a>[] = {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; { <span class="stringliteral">&quot;type&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, type), 0, NULL },</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; { <span class="stringliteral">&quot;id&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, <span class="keywordtype">id</span>), 0, NULL },</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; { <span class="stringliteral">&quot;opt1&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, opt1), 0, NULL },</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; { <span class="stringliteral">&quot;opt2&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, opt2), 0, NULL },</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; { <span class="stringliteral">&quot;opt3&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, opt3), 0, NULL },</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; { NULL }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;};</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad291d7929fade69745148ab417a4bf74"> 358</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad291d7929fade69745148ab417a4bf74">python_protocol_feature_new</a>(PyTypeObject* type, PyObject* kws, PyObject* args)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;{</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* <span class="keyword">self</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">self</span> = (<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>*)type-&gt;tp_alloc(type, 0);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span> (!<span class="keyword">self</span>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">self</span>-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#a9f3cc7cfae91a2651c3d78bbc3feb53d">id</a> = 0;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">self</span>-&gt;type = 0;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">self</span>-&gt;opt1 = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)Py_None;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">self</span>-&gt;opt1-&gt;raw = NULL;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">self</span>-&gt;opt1-&gt;type_hint = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">self</span>-&gt;opt2 = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)Py_None;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">self</span>-&gt;opt2-&gt;raw = NULL;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">self</span>-&gt;opt2-&gt;type_hint = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">self</span>-&gt;opt3 = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)Py_None;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">self</span>-&gt;opt3-&gt;raw = NULL;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">self</span>-&gt;opt3-&gt;type_hint = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> (PyObject*)<span class="keyword">self</span>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;}</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#adba1aaf354842305c8aafd7340271df7"> 382</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="python__wrapper__remmina_8c.html#adba1aaf354842305c8aafd7340271df7">python_protocol_feature_init</a>(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;type&quot;</span>, <span class="stringliteral">&quot;id&quot;</span>, <span class="stringliteral">&quot;opt1&quot;</span>, <span class="stringliteral">&quot;opt2&quot;</span>, <span class="stringliteral">&quot;opt3&quot;</span>, NULL };</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;|llOOO&quot;</span>, kwlist, &amp;self-&gt;type, &amp;self-&gt;id, &amp;self-&gt;opt1, &amp;self</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; -&gt;opt2, &amp;self-&gt;opt3))</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643"> 395</a></span>&#160;<span class="keyword">static</span> PyTypeObject <a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a> = {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; PyVarObject_HEAD_INIT(NULL, 0)</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; .tp_name = <span class="stringliteral">&quot;remmina.ProtocolFeature&quot;</span>,</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; .tp_doc = <span class="stringliteral">&quot;Remmina Setting information&quot;</span>,</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; .tp_basicsize = <span class="keyword">sizeof</span>(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>),</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; .tp_itemsize = 0,</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; .tp_flags = Py_TPFLAGS_DEFAULT,</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; .tp_new = <a class="code" href="python__wrapper__remmina_8c.html#ad291d7929fade69745148ab417a4bf74">python_protocol_feature_new</a>,</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; .tp_init = (initproc)<a class="code" href="python__wrapper__remmina_8c.html#adba1aaf354842305c8aafd7340271df7">python_protocol_feature_init</a>,</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; .tp_members = <a class="code" href="python__wrapper__remmina_8c.html#ad32c23fde1f6d93382853fed97c51885">python_protocol_feature_members</a></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;};</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a26eea3cdd2d97d5cd8ad00d2bbe17c29"> 407</a></span>&#160;<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* <a class="code" href="python__wrapper__remmina_8c.html#a26eea3cdd2d97d5cd8ad00d2bbe17c29">python_wrapper_protocol_feature_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;{</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* feature = (<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>*)PyObject_New(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, &amp;<a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a>);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#a9f3cc7cfae91a2651c3d78bbc3feb53d">id</a> = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a> = <a class="code" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1">python_wrapper_generic_new</a>();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = NULL;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a> = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a> = <a class="code" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1">python_wrapper_generic_new</a>();</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = NULL;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a> = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a> = <a class="code" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1">python_wrapper_generic_new</a>();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = NULL;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a> = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#aecce603234baf1434f3f6aca64616cbc">type</a> = 0;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; Py_IncRef((PyObject*)feature);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> feature;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;}</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment">// -- Python Type -&gt; Screenshot Data</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a6961b280d8d6ae5a1979176c23ddca7f"> 428</a></span>&#160;<span class="keyword">static</span> PyMemberDef <a class="code" href="python__wrapper__remmina_8c.html#a6961b280d8d6ae5a1979176c23ddca7f">python_screenshot_data_members</a>[] = {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; { <span class="stringliteral">&quot;buffer&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, buffer), 0, NULL },</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; { <span class="stringliteral">&quot;width&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, width), 0, NULL },</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; { <span class="stringliteral">&quot;height&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, height), 0, NULL },</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; { <span class="stringliteral">&quot;bitsPerPixel&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, bitsPerPixel), 0, NULL },</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; { <span class="stringliteral">&quot;bytesPerPixel&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, bytesPerPixel), 0, NULL },</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; { NULL }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;};</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a7216165b5783d7e8e0a7044ae52b5d9a"> 437</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a7216165b5783d7e8e0a7044ae52b5d9a">python_screenshot_data_new</a>(PyTypeObject* type, PyObject* kws, PyObject* args)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;{</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>* <span class="keyword">self</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">self</span> = (<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>*)type-&gt;tp_alloc(type, 0);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span> (!<span class="keyword">self</span>)</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">self</span>-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#aac36eb74554bd33d71ae4b6531ffa720">buffer</a> = (PyByteArrayObject*)PyObject_New(PyByteArrayObject, &amp;PyByteArray_Type);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">self</span>-&gt;height = 0;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">self</span>-&gt;width = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">self</span>-&gt;bitsPerPixel = 0;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">self</span>-&gt;bytesPerPixel = 0;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">return</span> (PyObject*)<span class="keyword">self</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;}</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ac3b4fdf83986b2128e523d48ed70859f"> 455</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="python__wrapper__remmina_8c.html#ac3b4fdf83986b2128e523d48ed70859f">python_screenshot_data_init</a>(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;{</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; g_printerr(<span class="stringliteral">&quot;Not to be initialized within Python!&quot;</span>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;}</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652"> 463</a></span>&#160;<span class="keyword">static</span> PyTypeObject <a class="code" href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652">python_screenshot_data_type</a> = {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; PyVarObject_HEAD_INIT(NULL, 0)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; .tp_name = <span class="stringliteral">&quot;remmina.RemminaScreenshotData&quot;</span>,</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; .tp_doc = <span class="stringliteral">&quot;Remmina Screenshot Data&quot;</span>,</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; .tp_basicsize = <span class="keyword">sizeof</span>(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>),</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; .tp_itemsize = 0,</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; .tp_flags = Py_TPFLAGS_DEFAULT,</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; .tp_new = <a class="code" href="python__wrapper__remmina_8c.html#a7216165b5783d7e8e0a7044ae52b5d9a">python_screenshot_data_new</a>,</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; .tp_init = (initproc)<a class="code" href="python__wrapper__remmina_8c.html#ac3b4fdf83986b2128e523d48ed70859f">python_screenshot_data_init</a>,</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; .tp_members = <a class="code" href="python__wrapper__remmina_8c.html#a6961b280d8d6ae5a1979176c23ddca7f">python_screenshot_data_members</a></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;};</div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad9e2034841e5b0a10291ad015e4bfc46"> 474</a></span>&#160;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>* <a class="code" href="python__wrapper__remmina_8c.html#ad9e2034841e5b0a10291ad015e4bfc46">python_wrapper_screenshot_data_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>* data = (<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>*)PyObject_New(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, &amp;<a class="code" href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652">python_screenshot_data_type</a>);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#aac36eb74554bd33d71ae4b6531ffa720">buffer</a> = PyObject_New(PyByteArrayObject, &amp;PyByteArray_Type);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; Py_IncRef((PyObject*)data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#aac36eb74554bd33d71ae4b6531ffa720">buffer</a>);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#a132778befe6b5251fccff28f12479b41">height</a> = 0;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#a6e0de9833ceda28199a84c4c10437e46">width</a> = 0;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#a79271016958eb788bdbd7184b9af0bd7">bitsPerPixel</a> = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#a74e84cd06fe5493d2e309fa422e0349e">bytesPerPixel</a> = 0;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;}</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8">python_wrapper_generic_to_int</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aed4fcc2391d235515aa04c64c9f5387e">python_wrapper_generic_to_bool</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184">python_wrapper_generic_to_string</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a0119afae8dc1bb68e04de3f5d63bb0da"> 490</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8c.html#a0119afae8dc1bb68e04de3f5d63bb0da">python_wrapper_generic_dealloc</a>(PyObject* <span class="keyword">self</span>)</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;{</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; PyObject_Del(<span class="keyword">self</span>);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;}</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a283437478ea12510fe4cc035bc70fcb8"> 495</a></span>&#160;<span class="keyword">static</span> PyMethodDef <a class="code" href="python__wrapper__remmina_8c.html#a283437478ea12510fe4cc035bc70fcb8">python_wrapper_generic_methods</a>[] = {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; { <span class="stringliteral">&quot;to_int&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8">python_wrapper_generic_to_int</a>, METH_NOARGS, <span class="stringliteral">&quot;&quot;</span> },</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; { <span class="stringliteral">&quot;to_bool&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#aed4fcc2391d235515aa04c64c9f5387e">python_wrapper_generic_to_bool</a>, METH_NOARGS, <span class="stringliteral">&quot;&quot;</span> },</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; { <span class="stringliteral">&quot;to_string&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184">python_wrapper_generic_to_string</a>, METH_NOARGS, <span class="stringliteral">&quot;&quot;</span> },</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; { NULL }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;};</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a0f018dcc9240518f61e3fac762242b3a"> 502</a></span>&#160;<span class="keyword">static</span> PyMemberDef <a class="code" href="python__wrapper__remmina_8c.html#a0f018dcc9240518f61e3fac762242b3a">python_wrapper_generic_members</a>[] = {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; { <span class="stringliteral">&quot;raw&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_generic.html">PyGeneric</a>, raw), 0, <span class="stringliteral">&quot;&quot;</span> },</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; { NULL }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;};</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aeb41a864c1147dac89d4d7f46546e9ad"> 507</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aeb41a864c1147dac89d4d7f46546e9ad">python_wrapper_generic_type_new</a>(PyTypeObject* type, PyObject* kws, PyObject* args)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;{</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">self</span> = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)type-&gt;tp_alloc(type, 0);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">if</span> (!<span class="keyword">self</span>)</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">self</span>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = Py_None;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">return</span> (PyObject*)<span class="keyword">self</span>;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;}</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#af5e38067a8df4449cc12618409d9afe1"> 521</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="python__wrapper__remmina_8c.html#af5e38067a8df4449cc12618409d9afe1">python_wrapper_generic_init</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;{</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;raw&quot;</span>, NULL };</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;|O&quot;</span>, kwlist, &amp;self-&gt;raw))</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;}</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403"> 533</a></span>&#160;<span class="keyword">static</span> PyTypeObject <a class="code" href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403">python_generic_type</a> = {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; PyVarObject_HEAD_INIT(NULL, 0)</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; .tp_name = <span class="stringliteral">&quot;remmina.Generic&quot;</span>,</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; .tp_doc = <span class="stringliteral">&quot;&quot;</span>,</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; .tp_basicsize = <span class="keyword">sizeof</span>(<a class="code" href="struct_py_generic.html">PyGeneric</a>),</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; .tp_itemsize = 0,</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; .tp_dealloc = <a class="code" href="python__wrapper__remmina_8c.html#a0119afae8dc1bb68e04de3f5d63bb0da">python_wrapper_generic_dealloc</a>,</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; .tp_flags = Py_TPFLAGS_DEFAULT,</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; .tp_new = <a class="code" href="python__wrapper__remmina_8c.html#aeb41a864c1147dac89d4d7f46546e9ad">python_wrapper_generic_type_new</a>,</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; .tp_init = (initproc)<a class="code" href="python__wrapper__remmina_8c.html#af5e38067a8df4449cc12618409d9afe1">python_wrapper_generic_init</a>,</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; .tp_members = <a class="code" href="python__wrapper__remmina_8c.html#a0f018dcc9240518f61e3fac762242b3a">python_wrapper_generic_members</a>,</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; .tp_methods = <a class="code" href="python__wrapper__remmina_8c.html#a283437478ea12510fe4cc035bc70fcb8">python_wrapper_generic_methods</a>,</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;};</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1"> 547</a></span>&#160;<a class="code" href="struct_py_generic.html">PyGeneric</a>* <a class="code" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1">python_wrapper_generic_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;{</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">generic</span> = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)PyObject_New(<a class="code" href="struct_py_generic.html">PyGeneric</a>, &amp;<a class="code" href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403">python_generic_type</a>);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keyword">generic</span>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = PyLong_FromLongLong(0LL);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; Py_IncRef((PyObject*)<span class="keyword">generic</span>);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">return</span> <span class="keyword">generic</span>;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;}</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8"> 555</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8">python_wrapper_generic_to_int</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;{</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; SELF_CHECK();</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span> (self-&gt;raw == NULL)</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (self-&gt;type_hint == <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288af7ab6943dcd5d24c6f19733da16d0f18">REMMINA_TYPEHINT_SIGNED</a>)</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">return</span> PyLong_FromLongLong((<span class="keywordtype">long</span> <span class="keywordtype">long</span>)self-&gt;raw);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (self-&gt;type_hint == <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a50903e485f8d4a2c2f98d7dfe4be8047">REMMINA_TYPEHINT_UNSIGNED</a>)</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">return</span> PyLong_FromUnsignedLongLong((<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>)self-&gt;raw);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aed4fcc2391d235515aa04c64c9f5387e"> 574</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aed4fcc2391d235515aa04c64c9f5387e">python_wrapper_generic_to_bool</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;{</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; SELF_CHECK();</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">if</span> (self-&gt;raw == NULL)</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (self-&gt;type_hint == <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e">REMMINA_TYPEHINT_BOOLEAN</a>)</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> PyBool_FromLong((<span class="keywordtype">long</span>)self-&gt;raw);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;}</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184"> 589</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184">python_wrapper_generic_to_string</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;{</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; SELF_CHECK();</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span> (self-&gt;raw == NULL)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; }</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (self-&gt;type_hint == <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd">REMMINA_TYPEHINT_STRING</a>)</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; {</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> PyUnicode_FromString((<span class="keyword">const</span> <span class="keywordtype">char</span>*)self-&gt;raw);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;}</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aea60d526d3356a866fef223b2e9bc0a5"> 609</a></span>&#160;PyMODINIT_FUNC <a class="code" href="python__wrapper__remmina_8c.html#aea60d526d3356a866fef223b2e9bc0a5">python_wrapper_module_initialize</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;{</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">if</span> (PyType_Ready(&amp;<a class="code" href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652">python_screenshot_data_type</a>) &lt; 0)</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; PyErr_Print();</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; }</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">if</span> (PyType_Ready(&amp;<a class="code" href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403">python_generic_type</a>) &lt; 0)</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; PyErr_Print();</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; }</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">if</span> (PyType_Ready(&amp;<a class="code" href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824">python_protocol_setting_type</a>) &lt; 0)</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; PyErr_Print();</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">if</span> (PyType_Ready(&amp;<a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a>) &lt; 0)</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; {</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; PyErr_Print();</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; }</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <a class="code" href="python__wrapper__protocol__widget_8c.html#a4fb99cb0b457f062dcb8e2eca5f4b85a">python_wrapper_protocol_widget_type_ready</a>();</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <a class="code" href="python__wrapper__remmina__file_8c.html#a845461e0ff89f428e89b5ef02d2623d3">python_wrapper_remmina_init_types</a>();</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; PyObject* module = PyModule_Create(&amp;<a class="code" href="python__wrapper__remmina_8c.html#a822ee64f62b7bf7af738dfec34e69737">remmina_python_module_type</a>);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">if</span> (!module)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; PyErr_Print();</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; }</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_CLOSE&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_CLOSE);</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_NONE&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_NONE);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_OK&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_OK);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_CLOSE&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_CLOSE);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_CANCEL&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_CANCEL);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_YES_NO&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_YES_NO);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_OK_CANCEL&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_OK_CANCEL);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_INFO&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_INFO);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_WARNING&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_WARNING);</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_QUESTION&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_QUESTION);</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_ERROR&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_ERROR);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_OTHER&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_OTHER);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_SERVER&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_PASSWORD&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_RESOLUTION&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_KEYMAP&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_TEXT&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_SELECT&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_COMBO&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_CHECK&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_FILE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_FOLDER&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a>);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_MULTIMON&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a>);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_PREF&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_TOOL&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_UNFOCUS&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a>);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_SCALE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_DYNRESUPDATE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a>);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_GTKSOCKET&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a>);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_NONE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_TUNNEL&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_SSH&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a>);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_REVERSE_TUNNEL&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_SFTP&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a>);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_PREF_RADIO&quot;</span>, (<span class="keywordtype">long</span>)REMMINA_PROTOCOL_FEATURE_PREF_RADIO);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_PREF_CHECK&quot;</span>, (<span class="keywordtype">long</span>)REMMINA_PROTOCOL_FEATURE_PREF_CHECK);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_PANEL_FLAG_USERNAME&quot;</span>, <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a>);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_PANEL_FLAG_USERNAME_READONLY&quot;</span>, <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a>);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_PANEL_FLAG_DOMAIN&quot;</span>, <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_PANEL_FLAG_SAVEPASSWORD&quot;</span>, <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">if</span> (PyModule_AddObject(module, <span class="stringliteral">&quot;Setting&quot;</span>, (PyObject*)&amp;<a class="code" href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824">python_protocol_setting_type</a>) &lt; 0)</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; Py_DECREF(&amp;python_protocol_setting_type);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; Py_DECREF(module);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; PyErr_Print();</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; }</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; Py_INCREF(&amp;<a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a>);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">if</span> (PyModule_AddObject(module, <span class="stringliteral">&quot;Feature&quot;</span>, (PyObject*)&amp;<a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a>) &lt; 0)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; Py_DECREF(&amp;python_protocol_setting_type);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; Py_DECREF(&amp;python_protocol_feature_type);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; Py_DECREF(module);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; PyErr_Print();</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> module;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;}</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8h.html#a3c64ffe58241dbb27605dee459e84b66"> 719</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8c.html#a53b98f2a3ae805f5b1cbe72f0f2af62a">python_wrapper_module_init</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;{</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">if</span> (PyImport_AppendInittab(<span class="stringliteral">&quot;remmina&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aea60d526d3356a866fef223b2e9bc0a5">python_wrapper_module_initialize</a>))</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; {</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; PyErr_Print();</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; exit(1);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; }</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="python__wrapper__entry_8c.html#a6ae71beff603a0d842479bc98bc26d50">python_wrapper_entry_init</a>();</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="python__wrapper__protocol_8c.html#ab223d3563d16258e33e8dfae0ee41e5d">python_wrapper_protocol_init</a>();</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="python__wrapper__tool_8c.html#ac1e8af0e4f21e009c4052483a09fa606">python_wrapper_tool_init</a>();</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <a class="code" href="python__wrapper__pref_8c.html#a1eea0842a9ec8ca72850f3b9def42b64">python_wrapper_pref_init</a>();</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <a class="code" href="python__wrapper__secret_8c.html#a5fb260ce16d8eea90b85d876c6b7b736">python_wrapper_secret_init</a>();</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="python__wrapper__file_8c.html#af7da0109a9ce79e9b70d1a5947ef00b1">python_wrapper_file_init</a>();</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;}</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace"> 737</a></span>&#160;gboolean <a class="code" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a>(PyObject* instance, <span class="keyword">const</span> gchar* member)</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;{</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">if</span> (PyObject_HasAttrString(instance, member))</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; g_printerr(<span class="stringliteral">&quot;Missing mandatory member &#39;%s&#39; in Python plugin instance!\n&quot;</span>, member);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;}</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549"> 750</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549">remmina_register_plugin_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin_instance)</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;{</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">if</span> (plugin_instance)</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; {</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a>(plugin_instance, <span class="stringliteral">&quot;name&quot;</span>)</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; || !<a class="code" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a>(plugin_instance, <span class="stringliteral">&quot;version&quot;</span>))</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; {</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">/* Protocol plugin definition and features */</span></div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">const</span> gchar* pluginType = PyUnicode_AsUTF8(PyObject_GetAttrString(plugin_instance, <span class="stringliteral">&quot;type&quot;</span>));</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>* <a class="code" href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a> = NULL;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="struct_py_plugin.html">PyPlugin</a>* plugin = (<a class="code" href="struct_py_plugin.html">PyPlugin</a>*)<a class="code" href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_py_plugin.html">PyPlugin</a>));</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a3b78180c53db5f3547a8c276a815375a">instance</a> = plugin_instance;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; Py_INCREF(plugin_instance);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a00183896cad1d1b31b3c5cb724db001f">protocol_plugin</a> = NULL;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a1550876f14c98c48981015b8399a095b">entry_plugin</a> = NULL;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a50c373b557faddaf959746d7086cbd4f">file_plugin</a> = NULL;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a0ad50bbd41dc27f511d6734b256a37ac">pref_plugin</a> = NULL;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#afb78d1611099092a7412a2d1818cca40">secret_plugin</a> = NULL;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#aeba82110f6ea8b55fcbebe80f5134c82">tool_plugin</a> = NULL;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; g_print(<span class="stringliteral">&quot;New Python plugin registered: %ld\n&quot;</span>, PyObject_Hash(plugin_instance));</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;protocol&quot;</span>))</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__protocol_8c.html#aaa90f5541895f5c3dedaa16c15d80de7">python_wrapper_create_protocol_plugin</a>(plugin);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;entry&quot;</span>))</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; {</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__entry_8c.html#ab2e36d6cbec3654566c07c78af3824f9">python_wrapper_create_entry_plugin</a>(plugin);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; }</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;file&quot;</span>))</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__file_8c.html#aefe9849fe9ac63ba035f6de1f77e1edd">python_wrapper_create_file_plugin</a>(plugin);</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;tool&quot;</span>))</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__tool_8c.html#a57245dde610861d678d3a63a57536994">python_wrapper_create_tool_plugin</a>(plugin);</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; }</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;pref&quot;</span>))</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; {</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__pref_8c.html#aa80e988cea8ddb51588c979eeb359dae">python_wrapper_create_pref_plugin</a>(plugin);</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;secret&quot;</span>))</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__secret_8c.html#af51bb70fa82d6904a51f73c4bb162e91">python_wrapper_create_secret_plugin</a>(plugin);</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; }</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; g_printerr(<span class="stringliteral">&quot;Unknown plugin type: %s\n&quot;</span>, pluginType);</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; }</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordflow">if</span> (remmina_plugin)</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; {</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (remmina_plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>)</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a> = <a class="code" href="python__wrapper__protocol__widget_8c.html#acbf591be371e01c5bf367018d298d801">python_wrapper_protocol_widget_create</a>();</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;register_plugin((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)remmina_plugin)) {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; g_print(<span class="stringliteral">&quot;%s: Successfully reigstered!\n&quot;</span>, remmina_plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>);</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; g_print(<span class="stringliteral">&quot;%s: Failed to reigster!\n&quot;</span>, remmina_plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>);</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; }</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; PyErr_Clear();</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;}</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde"> 826</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde">remmina_file_get_datadir_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;{</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; PyObject* result = Py_None;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keyword">const</span> gchar* datadir = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2919b48fd95b772b590b430a03ecb98f">file_get_user_datadir</a>();</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">if</span> (datadir)</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; result = PyUnicode_FromFormat(<span class="stringliteral">&quot;%s&quot;</span>, datadir);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;}</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e"> 842</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e">remmina_file_new_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;{</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* file = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#ad0c0e810cad311a80cb73746bc299895">file_new</a>();</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">if</span> (file)</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; {</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">return</span> (PyObject*)<a class="code" href="python__wrapper__remmina__file_8c.html#ac08c793f825c990ec3045b20fb284f03">python_wrapper_remmina_file_to_python</a>(file);</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; }</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;}</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;</div><div class="line"><a name="l00856"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781"> 856</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781">remmina_pref_set_value_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;{</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;key&quot;</span>, <span class="stringliteral">&quot;value&quot;</span>, NULL };</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; gchar* key, * value;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;ss&quot;</span>, kwlist, &amp;key, &amp;value))</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; {</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; }</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keywordflow">if</span> (key)</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; {</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a387f974b25c4164811f661128e200c8c">pref_set_value</a>(key, value);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; }</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;}</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;</div><div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6"> 877</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">remmina_pref_get_value_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;{</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;key&quot;</span>, NULL };</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; gchar* key;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; PyObject* result = Py_None;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;s&quot;</span>, kwlist, &amp;key))</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; {</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; }</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keywordflow">if</span> (key)</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; {</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keyword">const</span> gchar* value = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">pref_get_value</a>(key);</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; {</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; result = PyUnicode_FromFormat(<span class="stringliteral">&quot;%s&quot;</span>, result);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; }</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; }</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;}</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519"> 903</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">remmina_pref_get_scale_quality_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;{</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; PyObject* result = PyLong_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;pref_get_scale_quality());</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;}</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;</div><div class="line"><a name="l00912"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490"> 912</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">remmina_pref_get_sshtunnel_port_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;{</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; PyObject* result = PyLong_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;pref_get_sshtunnel_port());</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;}</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;</div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b"> 921</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">remmina_pref_get_ssh_loglevel_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;{</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; PyObject* result = PyLong_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;pref_get_ssh_loglevel());</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;}</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb"> 930</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">remmina_pref_get_ssh_parseconfig_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;{</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; PyObject* result = PyLong_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;pref_get_ssh_parseconfig());</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;}</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div><div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7"> 939</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">remmina_pref_keymap_get_keyval_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;{</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;keymap&quot;</span>, <span class="stringliteral">&quot;keyval&quot;</span>, NULL };</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; gchar* keymap;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; guint keyval;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; PyObject* result = Py_None;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;sl&quot;</span>, kwlist, &amp;keymap, &amp;keyval))</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; {</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">return</span> PyLong_FromLong(-1);</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; }</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">if</span> (keymap)</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; {</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keyword">const</span> guint value = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0884b2124ba4ea3f747f00bbe91135d2">pref_keymap_get_keyval</a>(keymap, keyval);</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; result = PyLong_FromUnsignedLong(value);</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; }</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;}</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div><div class="line"><a name="l00963"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c"> 963</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c">python_wrapper_log_print_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;{</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; gchar* text;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTuple(args, <span class="stringliteral">&quot;s&quot;</span>, &amp;text) || !text)</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; {</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; }</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2b8a0b0bec032f01906ab197678204de">log_print</a>(text);</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;}</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;</div><div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5"> 977</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5">python_wrapper_debug_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;{</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; gchar* text;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTuple(args, <span class="stringliteral">&quot;s&quot;</span>, &amp;text) || !text)</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a588f2c328c535384a0adaac027c4df72">_remmina_debug</a>(<span class="stringliteral">&quot;python&quot;</span>, <span class="stringliteral">&quot;%s&quot;</span>, text);</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;}</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;</div><div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660"> 991</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">remmina_widget_pool_register_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;{</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;widget&quot;</span>, NULL };</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; PyObject* widget;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;O&quot;</span>, kwlist, &amp;widget) &amp;&amp; widget)</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; {</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1bbf968b63ccd08024ebb527e6d6c406">widget_pool_register</a>(<a class="code" href="python__wrapper__common_8c.html#acee67aa338f743ad9978c5de9e7c72aa">get_pywidget</a>(widget));</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; }</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;}</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div><div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135"> 1006</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135">rcw_open_from_file_full_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;{</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;remminafile&quot;</span>, <span class="stringliteral">&quot;data&quot;</span>, <span class="stringliteral">&quot;handler&quot;</span>, NULL };</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; PyObject* pyremminafile;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; PyObject* data;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;OOO&quot;</span>, kwlist, &amp;pyremminafile, &amp;data) &amp;&amp; pyremminafile &amp;&amp; data)</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#abd51e82b9296d57abd324aecbf243137">rcw_open_from_file_full</a>((<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>*)pyremminafile, NULL, (<span class="keywordtype">void</span>*)data, NULL);</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; }</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;}</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div><div class="line"><a name="l01022"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6"> 1022</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">remmina_public_get_server_port_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;{</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;server&quot;</span>, <span class="stringliteral">&quot;defaultport&quot;</span>, <span class="stringliteral">&quot;host&quot;</span>, <span class="stringliteral">&quot;port&quot;</span>, NULL };</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; gchar* server;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; gint defaultport;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;slsl&quot;</span>, kwlist, &amp;server, &amp;defaultport) &amp;&amp; server)</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; {</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; gchar* host;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; gint port;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a6fdfd3063906f49157225f536537bb0f">get_server_port</a>(server, defaultport, &amp;host, &amp;port);</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; PyObject* result = PyList_New(2);</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; PyList_SetItem(result, 0, PyUnicode_FromString(host));</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; PyList_SetItem(result, 1, PyLong_FromLong(port));</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="keywordflow">return</span> PyList_AsTuple(result);</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; }</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;}</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;</div><div class="line"><a name="l01046"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f"> 1046</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f">remmina_masterthread_exec_is_main_thread_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;{</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordflow">return</span> PyBool_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;is_main_thread());</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;}</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div><div class="line"><a name="l01053"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d"> 1053</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d">remmina_gtksocket_available_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;{</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordflow">return</span> PyBool_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;gtksocket_available());</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;}</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="keyword">static</span> PyObject*</div><div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8"> 1061</a></span>&#160;<a class="code" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">remmina_protocol_widget_get_profile_remote_height_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;{</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;widget&quot;</span>, NULL };</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <a class="code" href="struct_py_plugin.html">PyPlugin</a>* plugin;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;O&quot;</span>, kwlist, &amp;plugin) &amp;&amp; plugin &amp;&amp; plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a>)</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; {</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2b75137f9d7739c0d7881ee16e2aabfa">get_profile_remote_height</a>(plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a>-&gt;<a class="code" href="struct_py_remmina_protocol_widget.html#aa32e589462d1defa097cbccc0a74f3af">gp</a>);</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; }</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;}</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="keyword">static</span> PyObject*</div><div class="line"><a name="l01077"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69"> 1077</a></span>&#160;<a class="code" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">remmina_protocol_widget_get_profile_remote_width_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;{</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;widget&quot;</span>, NULL };</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <a class="code" href="struct_py_plugin.html">PyPlugin</a>* plugin;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;O&quot;</span>, kwlist, &amp;plugin) &amp;&amp; plugin &amp;&amp; plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a>)</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; {</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#afe3c32a421cd5dcc735b99318ff8844a">get_profile_remote_width</a>(plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a>-&gt;<a class="code" href="struct_py_remmina_protocol_widget.html#aa32e589462d1defa097cbccc0a74f3af">gp</a>);</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; }</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;}</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;</div><div class="line"><a name="l01092"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8h.html#a0029840116ce2b2c4d7870d202ce6459"> 1092</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8c.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a>(<a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a>* dest, PyObject* setting)</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;{</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>* src = (<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>*)setting;</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; Py_INCREF(setting);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b">name</a>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#a640447ed12db0bee967d350562eea55e">label</a>;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">compact</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#a83f20deb4731925e29fff2a8a16535d6">compact</a>;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#aab4ec78686dfde9ba9a234e218debe16">settingType</a>;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">validator</a> = NULL;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">validator_data</a> = NULL;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a8ddc98141bc274ae10992842aee3a168">python_wrapper_to_generic</a>(src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#a79347dc9c1e71a2594b4df5e3576ad3a">opt1</a>, &amp;dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>);</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a8ddc98141bc274ae10992842aee3a168">python_wrapper_to_generic</a>(src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#a9816a20dd4999bfd2f3be57cae6c1888">opt2</a>, &amp;dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>);</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;}</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;</div><div class="line"><a name="l01108"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8h.html#ad9cee26b804b78c89cd56e59d71b6250"> 1108</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8c.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a>(<a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* dest, PyObject* feature)</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;{</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* src = (<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>*)feature;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; Py_INCREF(feature);</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20">id</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#a9f3cc7cfae91a2651c3d78bbc3feb53d">id</a>;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#aecce603234baf1434f3f6aca64616cbc">type</a>;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">opt1</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a>;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b">opt1_type_hint</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a>;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">opt2</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a>;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7">opt2_type_hint</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a>;</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a>;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a9abdee80580cddd54405d0577e459c2c">opt3_type_hint</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a>;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;}</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;</div><div class="line"><a name="l01124"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08"> 1124</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08">python_wrapper_show_dialog_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;{</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;type&quot;</span>, <span class="stringliteral">&quot;buttons&quot;</span>, <span class="stringliteral">&quot;message&quot;</span>, NULL };</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; GtkMessageType msgType;</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; GtkButtonsType btnType;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; gchar* message;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;lls&quot;</span>, kwlist, &amp;msgType, &amp;btnType, &amp;message))</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; {</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">return</span> PyLong_FromLong(-1);</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; }</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#afea11ab21bd7e00addf5a3696519be6d">show_dialog</a>(msgType, btnType, message);</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;}</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div><div class="line"><a name="l01143"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f"> 1143</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f">python_wrapper_get_mainwindow_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;{</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; GtkWindow* result = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a71ec795b6643f1d0aec1a18894eacbd1">get_window</a>();</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="keywordflow">if</span> (!result)</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; {</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; }</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">return</span> (PyObject*)<a class="code" href="python__wrapper__common_8c.html#a236e763fb994ac7f25e182b7e792b222">new_pywidget</a>((GObject*)result);</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;}</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e"> 1157</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e">remmina_protocol_plugin_signal_connection_closed_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;{</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; PyObject* pygp = NULL;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTuple(args, <span class="stringliteral">&quot;O&quot;</span>, &amp;pygp) || !pygp)</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; {</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; g_printerr(<span class="stringliteral">&quot;Please provide the Remmina protocol widget instance!&quot;</span>);</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; }</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(((<a class="code" href="struct_py_remmina_protocol_widget.html">PyRemminaProtocolWidget</a>*)pygp)-&gt;gp);</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;}</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;</div><div class="line"><a name="l01172"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58"> 1172</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58">remmina_protocol_plugin_init_auth_wrapper</a>(PyObject* module, PyObject* args, PyObject* kwds)</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;{</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keyword">static</span> gchar* keyword_list[] = { <span class="stringliteral">&quot;widget&quot;</span>, <span class="stringliteral">&quot;flags&quot;</span>, <span class="stringliteral">&quot;title&quot;</span>, <span class="stringliteral">&quot;default_username&quot;</span>, <span class="stringliteral">&quot;default_password&quot;</span>,</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="stringliteral">&quot;default_domain&quot;</span>, <span class="stringliteral">&quot;password_prompt&quot;</span> };</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <a class="code" href="struct_py_remmina_protocol_widget.html">PyRemminaProtocolWidget</a>* <span class="keyword">self</span>;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; gint pflags = 0;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; gchar* title, * default_username, * default_password, * default_domain, * password_prompt;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwds, <span class="stringliteral">&quot;Oisssss&quot;</span>, keyword_list, &amp;<span class="keyword">self</span>, &amp;pflags, &amp;title, &amp;default_username,</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; &amp;default_password, &amp;default_domain, &amp;password_prompt))</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; {</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">if</span> (pflags != 0 &amp;&amp; !(pflags &amp; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a>)</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; &amp;&amp; !(pflags &amp; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a>)</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; &amp;&amp; !(pflags &amp; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>)</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; &amp;&amp; !(pflags &amp; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>))</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; {</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; g_printerr(<span class="stringliteral">&quot;panel_auth(pflags, title, default_username, default_password, default_domain, password_prompt): &quot;</span></div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="stringliteral">&quot;%d is not a known value for RemminaMessagePanelFlags!\n&quot;</span>, pflags);</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; }</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; {</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keywordflow">return</span> Py_BuildValue(<span class="stringliteral">&quot;i&quot;</span>, <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;protocol_widget_panel_auth(<span class="keyword">self</span></div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; -&gt;gp, pflags, title, default_username, default_password, default_domain, password_prompt));</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; }</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; }</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; {</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; g_printerr(<span class="stringliteral">&quot;panel_auth(pflags, title, default_username, default_password, default_domain, password_prompt): Error parsing arguments!\n&quot;</span>);</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; PyErr_Print();</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; }</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;}</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;</div><div class="line"><a name="l01208"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d"> 1208</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d">remmina_protocol_plugin_signal_connection_opened_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;{</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; PyObject* pygp = NULL;</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTuple(args, <span class="stringliteral">&quot;O&quot;</span>, &amp;pygp) || !pygp)</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; {</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; g_printerr(<span class="stringliteral">&quot;Please provide the Remmina protocol widget instance!&quot;</span>);</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; }</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(((<a class="code" href="struct_py_remmina_protocol_widget.html">PyRemminaProtocolWidget</a>*)pygp)-&gt;gp);</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;}</div><div class="ttc" id="python__wrapper__remmina_8c_html_aeab116a7d57ed18c3abb8c46408d9549"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549">remmina_register_plugin_wrapper</a></div><div class="ttdeci">static PyObject * remmina_register_plugin_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00750">python_wrapper_remmina.c:750</a></div></div>
+<a href="python__wrapper__remmina_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// I N C L U D E S</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__common_8h.html">python_wrapper_common.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="plugin_8h.html">remmina/plugin.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="types_8h.html">remmina/types.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__remmina_8h.html">python_wrapper_remmina.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__protocol__widget_8h.html">python_wrapper_protocol_widget.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__entry_8h.html">python_wrapper_entry.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__file_8h.html">python_wrapper_file.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__protocol_8h.html">python_wrapper_protocol.h</a>&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__tool_8h.html">python_wrapper_tool.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__secret_8h.html">python_wrapper_secret.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__pref_8h.html">python_wrapper_pref.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__remmina__file_8h.html">python_wrapper_remmina_file.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// D E C L A R A T I O N S</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;gboolean <a class="code" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a>(PyObject* instance, <span class="keyword">const</span> gchar* member);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5">python_wrapper_debug_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* msg);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549">remmina_register_plugin_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde">remmina_file_get_datadir_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e">remmina_file_new_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781">remmina_pref_set_value_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">remmina_pref_get_value_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">remmina_pref_get_scale_quality_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">remmina_pref_get_sshtunnel_port_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">remmina_pref_get_ssh_loglevel_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">remmina_pref_get_ssh_parseconfig_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">remmina_pref_keymap_get_keyval_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c">python_wrapper_log_print_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* arg);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">remmina_widget_pool_register_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135">rcw_open_from_file_full_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">remmina_public_get_server_port_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f">remmina_masterthread_exec_is_main_thread_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d">remmina_gtksocket_available_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">static</span> PyObject*</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">remmina_protocol_widget_get_profile_remote_height_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">static</span> PyObject*</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<a class="code" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">remmina_protocol_widget_get_profile_remote_width_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08">python_wrapper_show_dialog_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f">python_wrapper_get_mainwindow_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d">remmina_protocol_plugin_signal_connection_opened_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e">remmina_protocol_plugin_signal_connection_closed_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58">remmina_protocol_plugin_init_auth_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#adf58bae87972fe68fa239199e7ca6e1b"> 97</a></span>&#160;<span class="keyword">static</span> PyMethodDef <a class="code" href="python__wrapper__remmina_8c.html#adf58bae87972fe68fa239199e7ca6e1b">remmina_python_module_type_methods</a>[] = {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; { <span class="stringliteral">&quot;register_plugin&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549">remmina_register_plugin_wrapper</a>, METH_O, NULL },</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; { <span class="stringliteral">&quot;log_print&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c">python_wrapper_log_print_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; { <span class="stringliteral">&quot;debug&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5">python_wrapper_debug_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; { <span class="stringliteral">&quot;show_dialog&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08">python_wrapper_show_dialog_wrapper</a>, METH_VARARGS | METH_KEYWORDS,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; NULL },</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; { <span class="stringliteral">&quot;get_main_window&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f">python_wrapper_get_mainwindow_wrapper</a>, METH_NOARGS, NULL },</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; { <span class="stringliteral">&quot;get_datadir&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde">remmina_file_get_datadir_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; { <span class="stringliteral">&quot;file_new&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e">remmina_file_new_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; { <span class="stringliteral">&quot;pref_set_value&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781">remmina_pref_set_value_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; { <span class="stringliteral">&quot;pref_get_value&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">remmina_pref_get_value_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; { <span class="stringliteral">&quot;pref_get_scale_quality&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">remmina_pref_get_scale_quality_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; { <span class="stringliteral">&quot;pref_get_sshtunnel_port&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">remmina_pref_get_sshtunnel_port_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; { <span class="stringliteral">&quot;pref_get_ssh_loglevel&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">remmina_pref_get_ssh_loglevel_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; { <span class="stringliteral">&quot;pref_get_ssh_parseconfig&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">remmina_pref_get_ssh_parseconfig_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; { <span class="stringliteral">&quot;pref_keymap_get_keyval&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">remmina_pref_keymap_get_keyval_wrapper</a>, METH_VARARGS | METH_KEYWORDS,</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; NULL },</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; { <span class="stringliteral">&quot;widget_pool_register&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">remmina_widget_pool_register_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; { <span class="stringliteral">&quot;rcw_open_from_file_full&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135">rcw_open_from_file_full_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; { <span class="stringliteral">&quot;public_get_server_port&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">remmina_public_get_server_port_wrapper</a>, METH_VARARGS | METH_KEYWORDS,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; NULL },</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; { <span class="stringliteral">&quot;masterthread_exec_is_main_thread&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f">remmina_masterthread_exec_is_main_thread_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; { <span class="stringliteral">&quot;gtksocket_available&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d">remmina_gtksocket_available_wrapper</a>, METH_VARARGS, NULL },</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; { <span class="stringliteral">&quot;protocol_widget_get_profile_remote_width&quot;</span>,</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">remmina_protocol_widget_get_profile_remote_width_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; { <span class="stringliteral">&quot;protocol_widget_get_profile_remote_height&quot;</span>,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">remmina_protocol_widget_get_profile_remote_height_wrapper</a>, METH_VARARGS | METH_KEYWORDS, NULL },</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; { <span class="stringliteral">&quot;protocol_plugin_signal_connection_opened&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d">remmina_protocol_plugin_signal_connection_opened_wrapper</a>,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; METH_VARARGS, NULL },</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; { <span class="stringliteral">&quot;protocol_plugin_signal_connection_closed&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e">remmina_protocol_plugin_signal_connection_closed_wrapper</a>,</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; METH_VARARGS, NULL },</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; { <span class="stringliteral">&quot;protocol_plugin_init_auth&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58">remmina_protocol_plugin_init_auth_wrapper</a>, METH_VARARGS | METH_KEYWORDS,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; NULL },</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/* Sentinel */</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; { NULL }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;};</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html"> 224</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;{</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; PyObject_HEAD</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#aab4ec78686dfde9ba9a234e218debe16"> 227</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350">RemminaProtocolSettingType</a> <a class="code" href="struct_py_remmina_protocol_setting.html#aab4ec78686dfde9ba9a234e218debe16">settingType</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b"> 228</a></span>&#160; gchar* <a class="code" href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b">name</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#a640447ed12db0bee967d350562eea55e"> 229</a></span>&#160; gchar* <a class="code" href="struct_py_remmina_protocol_setting.html#a640447ed12db0bee967d350562eea55e">label</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#a83f20deb4731925e29fff2a8a16535d6"> 230</a></span>&#160; gboolean <a class="code" href="struct_py_remmina_protocol_setting.html#a83f20deb4731925e29fff2a8a16535d6">compact</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#a79347dc9c1e71a2594b4df5e3576ad3a"> 231</a></span>&#160; PyObject* <a class="code" href="struct_py_remmina_protocol_setting.html#a79347dc9c1e71a2594b4df5e3576ad3a">opt1</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="struct_py_remmina_protocol_setting.html#a9816a20dd4999bfd2f3be57cae6c1888"> 232</a></span>&#160; PyObject* <a class="code" href="struct_py_remmina_protocol_setting.html#a9816a20dd4999bfd2f3be57cae6c1888">opt2</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;} <a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a822ee64f62b7bf7af738dfec34e69737"> 238</a></span>&#160;<span class="keyword">static</span> PyModuleDef <a class="code" href="python__wrapper__remmina_8c.html#a822ee64f62b7bf7af738dfec34e69737">remmina_python_module_type</a> = {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; PyModuleDef_HEAD_INIT,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; .m_name = <span class="stringliteral">&quot;remmina&quot;</span>,</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; .m_doc = <span class="stringliteral">&quot;Remmina API.&quot;</span>,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; .m_size = -1,</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; .m_methods = <a class="code" href="python__wrapper__remmina_8c.html#adf58bae87972fe68fa239199e7ca6e1b">remmina_python_module_type_methods</a></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;};</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// -- Python Object -&gt; Setting</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#adbec50426452678e9f7039a1df6cb9bf"> 252</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#adbec50426452678e9f7039a1df6cb9bf">python_protocol_setting_new</a>(PyTypeObject* type, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>* <span class="keyword">self</span> = (<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>*)type-&gt;tp_alloc(type, 0);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span> (!<span class="keyword">self</span>)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">self</span>-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b">name</a> = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">self</span>-&gt;label = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">self</span>-&gt;compact = FALSE;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">self</span>-&gt;opt1 = NULL;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">self</span>-&gt;opt2 = NULL;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">self</span>-&gt;settingType = 0;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> (PyObject*)<span class="keyword">self</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#acbfd9c330a98034bf5ea3253661c939e"> 277</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="python__wrapper__remmina_8c.html#acbfd9c330a98034bf5ea3253661c939e">python_protocol_setting_init</a>(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;{</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">static</span> gchar* kwlist[] = { <span class="stringliteral">&quot;type&quot;</span>, <span class="stringliteral">&quot;name&quot;</span>, <span class="stringliteral">&quot;label&quot;</span>, <span class="stringliteral">&quot;compact&quot;</span>, <span class="stringliteral">&quot;opt1&quot;</span>, <span class="stringliteral">&quot;opt2&quot;</span>, NULL };</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; PyObject* name;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; PyObject* label;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;|lOOpOO&quot;</span>, kwlist,</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; &amp;self-&gt;settingType, &amp;name, &amp;label, &amp;self-&gt;compact, &amp;self-&gt;opt1, &amp;self-&gt;opt2))</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; Py_ssize_t len = PyUnicode_GetLength(label);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span> (len == 0)</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">self</span>-&gt;label = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">self</span>-&gt;label = <a class="code" href="python__wrapper__common_8c.html#a685b2ce44daa9ed47ba4987b4183a0a2">python_wrapper_copy_string_from_python</a>(label, len);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span> (!self-&gt;label)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; g_printerr(<span class="stringliteral">&quot;Unable to extract label during initialization of Python settings module!\n&quot;</span>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; len = PyUnicode_GetLength(name);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (len == 0)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">self</span>-&gt;name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">self</span>-&gt;name = <a class="code" href="python__wrapper__common_8c.html#a685b2ce44daa9ed47ba4987b4183a0a2">python_wrapper_copy_string_from_python</a>(label, len);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (!self-&gt;name)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; g_printerr(<span class="stringliteral">&quot;Unable to extract name during initialization of Python settings module!\n&quot;</span>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a7ca6cc6c56f1e406e6c13788434b282c"> 324</a></span>&#160;<span class="keyword">static</span> PyMemberDef <a class="code" href="python__wrapper__remmina_8c.html#a7ca6cc6c56f1e406e6c13788434b282c">python_protocol_setting_type_members</a>[] = {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; { <span class="stringliteral">&quot;settingType&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, settingType), T_INT, 0, NULL },</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; { <span class="stringliteral">&quot;name&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, name), T_STRING, 0, NULL },</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; { <span class="stringliteral">&quot;label&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, label), T_STRING, 0, NULL },</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; { <span class="stringliteral">&quot;compact&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, compact), T_BOOL, 0, NULL },</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; { <span class="stringliteral">&quot;opt1&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, opt1), T_OBJECT, 0, NULL },</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; { <span class="stringliteral">&quot;opt2&quot;</span>, offsetof(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>, opt2), T_OBJECT, 0, NULL },</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; { NULL }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;};</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824"> 334</a></span>&#160;<span class="keyword">static</span> PyTypeObject <a class="code" href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824">python_protocol_setting_type</a> = {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; PyVarObject_HEAD_INIT(NULL, 0)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; .tp_name = <span class="stringliteral">&quot;remmina.Setting&quot;</span>,</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; .tp_doc = <span class="stringliteral">&quot;Remmina Setting information&quot;</span>,</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; .tp_basicsize = <span class="keyword">sizeof</span>(<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>),</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; .tp_itemsize = 0,</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; .tp_flags = Py_TPFLAGS_DEFAULT,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; .tp_new = <a class="code" href="python__wrapper__remmina_8c.html#adbec50426452678e9f7039a1df6cb9bf">python_protocol_setting_new</a>,</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; .tp_init = (initproc)<a class="code" href="python__wrapper__remmina_8c.html#acbfd9c330a98034bf5ea3253661c939e">python_protocol_setting_init</a>,</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; .tp_members = <a class="code" href="python__wrapper__remmina_8c.html#a7ca6cc6c56f1e406e6c13788434b282c">python_protocol_setting_type_members</a></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;};</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment">// -- Python Type -&gt; Feature</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad32c23fde1f6d93382853fed97c51885"> 349</a></span>&#160;<span class="keyword">static</span> PyMemberDef <a class="code" href="python__wrapper__remmina_8c.html#ad32c23fde1f6d93382853fed97c51885">python_protocol_feature_members</a>[] = {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; { <span class="stringliteral">&quot;type&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, type), 0, NULL },</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; { <span class="stringliteral">&quot;id&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, <span class="keywordtype">id</span>), 0, NULL },</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; { <span class="stringliteral">&quot;opt1&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, opt1), 0, NULL },</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; { <span class="stringliteral">&quot;opt2&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, opt2), 0, NULL },</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; { <span class="stringliteral">&quot;opt3&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, opt3), 0, NULL },</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; { NULL }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;};</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad291d7929fade69745148ab417a4bf74"> 358</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad291d7929fade69745148ab417a4bf74">python_protocol_feature_new</a>(PyTypeObject* type, PyObject* kws, PyObject* args)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;{</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* <span class="keyword">self</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">self</span> = (<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>*)type-&gt;tp_alloc(type, 0);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span> (!<span class="keyword">self</span>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">self</span>-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#a9f3cc7cfae91a2651c3d78bbc3feb53d">id</a> = 0;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">self</span>-&gt;type = 0;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">self</span>-&gt;opt1 = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)Py_None;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">self</span>-&gt;opt1-&gt;raw = NULL;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">self</span>-&gt;opt1-&gt;type_hint = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">self</span>-&gt;opt2 = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)Py_None;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">self</span>-&gt;opt2-&gt;raw = NULL;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">self</span>-&gt;opt2-&gt;type_hint = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">self</span>-&gt;opt3 = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)Py_None;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">self</span>-&gt;opt3-&gt;raw = NULL;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">self</span>-&gt;opt3-&gt;type_hint = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> (PyObject*)<span class="keyword">self</span>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;}</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#adba1aaf354842305c8aafd7340271df7"> 382</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="python__wrapper__remmina_8c.html#adba1aaf354842305c8aafd7340271df7">python_protocol_feature_init</a>(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;type&quot;</span>, <span class="stringliteral">&quot;id&quot;</span>, <span class="stringliteral">&quot;opt1&quot;</span>, <span class="stringliteral">&quot;opt2&quot;</span>, <span class="stringliteral">&quot;opt3&quot;</span>, NULL };</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;|llOOO&quot;</span>, kwlist, &amp;self-&gt;type, &amp;self-&gt;id, &amp;self-&gt;opt1, &amp;self</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; -&gt;opt2, &amp;self-&gt;opt3))</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643"> 395</a></span>&#160;<span class="keyword">static</span> PyTypeObject <a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a> = {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; PyVarObject_HEAD_INIT(NULL, 0)</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; .tp_name = <span class="stringliteral">&quot;remmina.ProtocolFeature&quot;</span>,</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; .tp_doc = <span class="stringliteral">&quot;Remmina Setting information&quot;</span>,</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; .tp_basicsize = <span class="keyword">sizeof</span>(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>),</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; .tp_itemsize = 0,</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; .tp_flags = Py_TPFLAGS_DEFAULT,</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; .tp_new = <a class="code" href="python__wrapper__remmina_8c.html#ad291d7929fade69745148ab417a4bf74">python_protocol_feature_new</a>,</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; .tp_init = (initproc)<a class="code" href="python__wrapper__remmina_8c.html#adba1aaf354842305c8aafd7340271df7">python_protocol_feature_init</a>,</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; .tp_members = <a class="code" href="python__wrapper__remmina_8c.html#ad32c23fde1f6d93382853fed97c51885">python_protocol_feature_members</a></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;};</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a26eea3cdd2d97d5cd8ad00d2bbe17c29"> 407</a></span>&#160;<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* <a class="code" href="python__wrapper__remmina_8c.html#a26eea3cdd2d97d5cd8ad00d2bbe17c29">python_wrapper_protocol_feature_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;{</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* feature = (<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>*)PyObject_New(<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>, &amp;<a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a>);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#a9f3cc7cfae91a2651c3d78bbc3feb53d">id</a> = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a> = <a class="code" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1">python_wrapper_generic_new</a>();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = NULL;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a> = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a> = <a class="code" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1">python_wrapper_generic_new</a>();</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = NULL;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a> = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a> = <a class="code" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1">python_wrapper_generic_new</a>();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = NULL;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a> = <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; feature-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#aecce603234baf1434f3f6aca64616cbc">type</a> = 0;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; Py_IncRef((PyObject*)feature);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> feature;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;}</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment">// -- Python Type -&gt; Screenshot Data</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a6961b280d8d6ae5a1979176c23ddca7f"> 428</a></span>&#160;<span class="keyword">static</span> PyMemberDef <a class="code" href="python__wrapper__remmina_8c.html#a6961b280d8d6ae5a1979176c23ddca7f">python_screenshot_data_members</a>[] = {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; { <span class="stringliteral">&quot;buffer&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, buffer), 0, NULL },</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; { <span class="stringliteral">&quot;width&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, width), 0, NULL },</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; { <span class="stringliteral">&quot;height&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, height), 0, NULL },</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; { <span class="stringliteral">&quot;bitsPerPixel&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, bitsPerPixel), 0, NULL },</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; { <span class="stringliteral">&quot;bytesPerPixel&quot;</span>, T_INT, offsetof(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, bytesPerPixel), 0, NULL },</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; { NULL }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;};</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a7216165b5783d7e8e0a7044ae52b5d9a"> 437</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a7216165b5783d7e8e0a7044ae52b5d9a">python_screenshot_data_new</a>(PyTypeObject* type, PyObject* kws, PyObject* args)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;{</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>* <span class="keyword">self</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">self</span> = (<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>*)type-&gt;tp_alloc(type, 0);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span> (!<span class="keyword">self</span>)</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">self</span>-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#aac36eb74554bd33d71ae4b6531ffa720">buffer</a> = (PyByteArrayObject*)PyObject_New(PyByteArrayObject, &amp;PyByteArray_Type);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">self</span>-&gt;height = 0;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">self</span>-&gt;width = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">self</span>-&gt;bitsPerPixel = 0;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">self</span>-&gt;bytesPerPixel = 0;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">return</span> (PyObject*)<span class="keyword">self</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;}</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ac3b4fdf83986b2128e523d48ed70859f"> 455</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="python__wrapper__remmina_8c.html#ac3b4fdf83986b2128e523d48ed70859f">python_screenshot_data_init</a>(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;{</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; g_printerr(<span class="stringliteral">&quot;Not to be initialized within Python!&quot;</span>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;}</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652"> 463</a></span>&#160;<span class="keyword">static</span> PyTypeObject <a class="code" href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652">python_screenshot_data_type</a> = {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; PyVarObject_HEAD_INIT(NULL, 0)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; .tp_name = <span class="stringliteral">&quot;remmina.RemminaScreenshotData&quot;</span>,</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; .tp_doc = <span class="stringliteral">&quot;Remmina Screenshot Data&quot;</span>,</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; .tp_basicsize = <span class="keyword">sizeof</span>(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>),</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; .tp_itemsize = 0,</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; .tp_flags = Py_TPFLAGS_DEFAULT,</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; .tp_new = <a class="code" href="python__wrapper__remmina_8c.html#a7216165b5783d7e8e0a7044ae52b5d9a">python_screenshot_data_new</a>,</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; .tp_init = (initproc)<a class="code" href="python__wrapper__remmina_8c.html#ac3b4fdf83986b2128e523d48ed70859f">python_screenshot_data_init</a>,</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; .tp_members = <a class="code" href="python__wrapper__remmina_8c.html#a6961b280d8d6ae5a1979176c23ddca7f">python_screenshot_data_members</a></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;};</div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad9e2034841e5b0a10291ad015e4bfc46"> 474</a></span>&#160;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>* <a class="code" href="python__wrapper__remmina_8c.html#ad9e2034841e5b0a10291ad015e4bfc46">python_wrapper_screenshot_data_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>* data = (<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>*)PyObject_New(<a class="code" href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a>, &amp;<a class="code" href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652">python_screenshot_data_type</a>);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#aac36eb74554bd33d71ae4b6531ffa720">buffer</a> = PyObject_New(PyByteArrayObject, &amp;PyByteArray_Type);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; Py_IncRef((PyObject*)data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#aac36eb74554bd33d71ae4b6531ffa720">buffer</a>);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#a132778befe6b5251fccff28f12479b41">height</a> = 0;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#a6e0de9833ceda28199a84c4c10437e46">width</a> = 0;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#a79271016958eb788bdbd7184b9af0bd7">bitsPerPixel</a> = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; data-&gt;<a class="code" href="struct_py_remmina_plugin_screenshot_data.html#a74e84cd06fe5493d2e309fa422e0349e">bytesPerPixel</a> = 0;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;}</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8">python_wrapper_generic_to_int</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aed4fcc2391d235515aa04c64c9f5387e">python_wrapper_generic_to_bool</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184">python_wrapper_generic_to_string</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a0119afae8dc1bb68e04de3f5d63bb0da"> 490</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8c.html#a0119afae8dc1bb68e04de3f5d63bb0da">python_wrapper_generic_dealloc</a>(PyObject* <span class="keyword">self</span>)</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;{</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; PyObject_Del(<span class="keyword">self</span>);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;}</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a283437478ea12510fe4cc035bc70fcb8"> 495</a></span>&#160;<span class="keyword">static</span> PyMethodDef <a class="code" href="python__wrapper__remmina_8c.html#a283437478ea12510fe4cc035bc70fcb8">python_wrapper_generic_methods</a>[] = {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; { <span class="stringliteral">&quot;to_int&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8">python_wrapper_generic_to_int</a>, METH_NOARGS, <span class="stringliteral">&quot;&quot;</span> },</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; { <span class="stringliteral">&quot;to_bool&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#aed4fcc2391d235515aa04c64c9f5387e">python_wrapper_generic_to_bool</a>, METH_NOARGS, <span class="stringliteral">&quot;&quot;</span> },</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; { <span class="stringliteral">&quot;to_string&quot;</span>, (PyCFunction)<a class="code" href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184">python_wrapper_generic_to_string</a>, METH_NOARGS, <span class="stringliteral">&quot;&quot;</span> },</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; { NULL }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;};</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a0f018dcc9240518f61e3fac762242b3a"> 502</a></span>&#160;<span class="keyword">static</span> PyMemberDef <a class="code" href="python__wrapper__remmina_8c.html#a0f018dcc9240518f61e3fac762242b3a">python_wrapper_generic_members</a>[] = {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; { <span class="stringliteral">&quot;raw&quot;</span>, T_OBJECT, offsetof(<a class="code" href="struct_py_generic.html">PyGeneric</a>, raw), 0, <span class="stringliteral">&quot;&quot;</span> },</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; { NULL }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;};</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aeb41a864c1147dac89d4d7f46546e9ad"> 507</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aeb41a864c1147dac89d4d7f46546e9ad">python_wrapper_generic_type_new</a>(PyTypeObject* type, PyObject* kws, PyObject* args)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;{</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">self</span> = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)type-&gt;tp_alloc(type, 0);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">if</span> (!<span class="keyword">self</span>)</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">self</span>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = Py_None;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">return</span> (PyObject*)<span class="keyword">self</span>;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;}</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#af5e38067a8df4449cc12618409d9afe1"> 521</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="python__wrapper__remmina_8c.html#af5e38067a8df4449cc12618409d9afe1">python_wrapper_generic_init</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;{</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;raw&quot;</span>, NULL };</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;|O&quot;</span>, kwlist, &amp;self-&gt;raw))</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;}</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403"> 533</a></span>&#160;<span class="keyword">static</span> PyTypeObject <a class="code" href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403">python_generic_type</a> = {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; PyVarObject_HEAD_INIT(NULL, 0)</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; .tp_name = <span class="stringliteral">&quot;remmina.Generic&quot;</span>,</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; .tp_doc = <span class="stringliteral">&quot;&quot;</span>,</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; .tp_basicsize = <span class="keyword">sizeof</span>(<a class="code" href="struct_py_generic.html">PyGeneric</a>),</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; .tp_itemsize = 0,</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; .tp_dealloc = <a class="code" href="python__wrapper__remmina_8c.html#a0119afae8dc1bb68e04de3f5d63bb0da">python_wrapper_generic_dealloc</a>,</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; .tp_flags = Py_TPFLAGS_DEFAULT,</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; .tp_new = <a class="code" href="python__wrapper__remmina_8c.html#aeb41a864c1147dac89d4d7f46546e9ad">python_wrapper_generic_type_new</a>,</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; .tp_init = (initproc)<a class="code" href="python__wrapper__remmina_8c.html#af5e38067a8df4449cc12618409d9afe1">python_wrapper_generic_init</a>,</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; .tp_members = <a class="code" href="python__wrapper__remmina_8c.html#a0f018dcc9240518f61e3fac762242b3a">python_wrapper_generic_members</a>,</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; .tp_methods = <a class="code" href="python__wrapper__remmina_8c.html#a283437478ea12510fe4cc035bc70fcb8">python_wrapper_generic_methods</a>,</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;};</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1"> 547</a></span>&#160;<a class="code" href="struct_py_generic.html">PyGeneric</a>* <a class="code" href="python__wrapper__remmina_8c.html#aa47245a8529fe23c8a710a50bc6f6bc1">python_wrapper_generic_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;{</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">generic</span> = (<a class="code" href="struct_py_generic.html">PyGeneric</a>*)PyObject_New(<a class="code" href="struct_py_generic.html">PyGeneric</a>, &amp;<a class="code" href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403">python_generic_type</a>);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keyword">generic</span>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a> = PyLong_FromLongLong(0LL);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; Py_IncRef((PyObject*)<span class="keyword">generic</span>);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">return</span> <span class="keyword">generic</span>;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;}</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8"> 555</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8">python_wrapper_generic_to_int</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;{</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; SELF_CHECK();</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span> (self-&gt;raw == NULL)</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (self-&gt;type_hint == <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288af7ab6943dcd5d24c6f19733da16d0f18">REMMINA_TYPEHINT_SIGNED</a>)</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">return</span> PyLong_FromLongLong((<span class="keywordtype">long</span> <span class="keywordtype">long</span>)self-&gt;raw);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (self-&gt;type_hint == <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a50903e485f8d4a2c2f98d7dfe4be8047">REMMINA_TYPEHINT_UNSIGNED</a>)</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">return</span> PyLong_FromUnsignedLongLong((<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>)self-&gt;raw);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aed4fcc2391d235515aa04c64c9f5387e"> 574</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aed4fcc2391d235515aa04c64c9f5387e">python_wrapper_generic_to_bool</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;{</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; SELF_CHECK();</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">if</span> (self-&gt;raw == NULL)</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (self-&gt;type_hint == <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e">REMMINA_TYPEHINT_BOOLEAN</a>)</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> PyBool_FromLong((<span class="keywordtype">long</span>)self-&gt;raw);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;}</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184"> 589</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184">python_wrapper_generic_to_string</a>(<a class="code" href="struct_py_generic.html">PyGeneric</a>* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;{</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; SELF_CHECK();</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span> (self-&gt;raw == NULL)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; }</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (self-&gt;type_hint == <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd">REMMINA_TYPEHINT_STRING</a>)</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; {</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> PyUnicode_FromString((<span class="keyword">const</span> <span class="keywordtype">char</span>*)self-&gt;raw);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;}</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aea60d526d3356a866fef223b2e9bc0a5"> 609</a></span>&#160;PyMODINIT_FUNC <a class="code" href="python__wrapper__remmina_8c.html#aea60d526d3356a866fef223b2e9bc0a5">python_wrapper_module_initialize</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;{</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">if</span> (PyType_Ready(&amp;<a class="code" href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652">python_screenshot_data_type</a>) &lt; 0)</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; PyErr_Print();</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; }</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">if</span> (PyType_Ready(&amp;<a class="code" href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403">python_generic_type</a>) &lt; 0)</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; PyErr_Print();</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; }</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">if</span> (PyType_Ready(&amp;<a class="code" href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824">python_protocol_setting_type</a>) &lt; 0)</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; PyErr_Print();</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">if</span> (PyType_Ready(&amp;<a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a>) &lt; 0)</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; {</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; PyErr_Print();</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; }</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <a class="code" href="python__wrapper__protocol__widget_8c.html#a4fb99cb0b457f062dcb8e2eca5f4b85a">python_wrapper_protocol_widget_type_ready</a>();</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <a class="code" href="python__wrapper__remmina__file_8c.html#a845461e0ff89f428e89b5ef02d2623d3">python_wrapper_remmina_init_types</a>();</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; PyObject* module = PyModule_Create(&amp;<a class="code" href="python__wrapper__remmina_8c.html#a822ee64f62b7bf7af738dfec34e69737">remmina_python_module_type</a>);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">if</span> (!module)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; PyErr_Print();</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; }</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_CLOSE&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_CLOSE);</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_NONE&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_NONE);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_OK&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_OK);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_CLOSE&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_CLOSE);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_CANCEL&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_CANCEL);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_YES_NO&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_YES_NO);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;BUTTONS_OK_CANCEL&quot;</span>, (<span class="keywordtype">long</span>)GTK_BUTTONS_OK_CANCEL);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_INFO&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_INFO);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_WARNING&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_WARNING);</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_QUESTION&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_QUESTION);</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_ERROR&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_ERROR);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_OTHER&quot;</span>, (<span class="keywordtype">long</span>)GTK_MESSAGE_OTHER);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_SERVER&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_PASSWORD&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_RESOLUTION&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_ASSISTANCE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a>);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_KEYMAP&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_TEXT&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_SELECT&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_COMBO&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_CHECK&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_FILE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SETTING_TYPE_FOLDER&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a>);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_MULTIMON&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a>);</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_PREF&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_TOOL&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_UNFOCUS&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a>);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_SCALE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_DYNRESUPDATE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a>);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_TYPE_GTKSOCKET&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a>);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_NONE&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_TUNNEL&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_SSH&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a>);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_REVERSE_TUNNEL&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_SSH_SETTING_SFTP&quot;</span>, (<span class="keywordtype">long</span>)<a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a>);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_PREF_RADIO&quot;</span>, (<span class="keywordtype">long</span>)REMMINA_PROTOCOL_FEATURE_PREF_RADIO);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;PROTOCOL_FEATURE_PREF_CHECK&quot;</span>, (<span class="keywordtype">long</span>)REMMINA_PROTOCOL_FEATURE_PREF_CHECK);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_PANEL_FLAG_USERNAME&quot;</span>, <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a>);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_PANEL_FLAG_USERNAME_READONLY&quot;</span>, <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a>);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_PANEL_FLAG_DOMAIN&quot;</span>, <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; PyModule_AddIntConstant(module, <span class="stringliteral">&quot;MESSAGE_PANEL_FLAG_SAVEPASSWORD&quot;</span>, <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>);</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">if</span> (PyModule_AddObject(module, <span class="stringliteral">&quot;Setting&quot;</span>, (PyObject*)&amp;<a class="code" href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824">python_protocol_setting_type</a>) &lt; 0)</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; {</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; Py_DECREF(&amp;python_protocol_setting_type);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; Py_DECREF(module);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; PyErr_Print();</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; Py_INCREF(&amp;<a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a>);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">if</span> (PyModule_AddObject(module, <span class="stringliteral">&quot;Feature&quot;</span>, (PyObject*)&amp;<a class="code" href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a>) &lt; 0)</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; Py_DECREF(&amp;python_protocol_setting_type);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; Py_DECREF(&amp;python_protocol_feature_type);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; Py_DECREF(module);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; PyErr_Print();</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">return</span> module;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;}</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div><div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8h.html#a3c64ffe58241dbb27605dee459e84b66"> 720</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8c.html#a53b98f2a3ae805f5b1cbe72f0f2af62a">python_wrapper_module_init</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;{</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">if</span> (PyImport_AppendInittab(<span class="stringliteral">&quot;remmina&quot;</span>, <a class="code" href="python__wrapper__remmina_8c.html#aea60d526d3356a866fef223b2e9bc0a5">python_wrapper_module_initialize</a>))</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; PyErr_Print();</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; exit(1);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; }</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="python__wrapper__entry_8c.html#a6ae71beff603a0d842479bc98bc26d50">python_wrapper_entry_init</a>();</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="python__wrapper__protocol_8c.html#ab223d3563d16258e33e8dfae0ee41e5d">python_wrapper_protocol_init</a>();</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <a class="code" href="python__wrapper__tool_8c.html#ac1e8af0e4f21e009c4052483a09fa606">python_wrapper_tool_init</a>();</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <a class="code" href="python__wrapper__pref_8c.html#a1eea0842a9ec8ca72850f3b9def42b64">python_wrapper_pref_init</a>();</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="python__wrapper__secret_8c.html#a5fb260ce16d8eea90b85d876c6b7b736">python_wrapper_secret_init</a>();</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="python__wrapper__file_8c.html#af7da0109a9ce79e9b70d1a5947ef00b1">python_wrapper_file_init</a>();</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;}</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace"> 738</a></span>&#160;gboolean <a class="code" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a>(PyObject* instance, <span class="keyword">const</span> gchar* member)</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;{</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">if</span> (PyObject_HasAttrString(instance, member))</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; {</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; }</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; g_printerr(<span class="stringliteral">&quot;Missing mandatory member &#39;%s&#39; in Python plugin instance!\n&quot;</span>, member);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;}</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549"> 751</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549">remmina_register_plugin_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin_instance)</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;{</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">if</span> (plugin_instance)</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a>(plugin_instance, <span class="stringliteral">&quot;name&quot;</span>)</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; || !<a class="code" href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a>(plugin_instance, <span class="stringliteral">&quot;version&quot;</span>))</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; {</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="comment">/* Protocol plugin definition and features */</span></div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keyword">const</span> gchar* pluginType = PyUnicode_AsUTF8(PyObject_GetAttrString(plugin_instance, <span class="stringliteral">&quot;type&quot;</span>));</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>* <a class="code" href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a> = NULL;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <a class="code" href="struct_py_plugin.html">PyPlugin</a>* plugin = (<a class="code" href="struct_py_plugin.html">PyPlugin</a>*)<a class="code" href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_py_plugin.html">PyPlugin</a>));</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a3b78180c53db5f3547a8c276a815375a">instance</a> = plugin_instance;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; Py_INCREF(plugin_instance);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a00183896cad1d1b31b3c5cb724db001f">protocol_plugin</a> = NULL;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a1550876f14c98c48981015b8399a095b">entry_plugin</a> = NULL;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a50c373b557faddaf959746d7086cbd4f">file_plugin</a> = NULL;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a0ad50bbd41dc27f511d6734b256a37ac">pref_plugin</a> = NULL;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#afb78d1611099092a7412a2d1818cca40">secret_plugin</a> = NULL;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#aeba82110f6ea8b55fcbebe80f5134c82">tool_plugin</a> = NULL;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; g_print(<span class="stringliteral">&quot;New Python plugin registered: %ld\n&quot;</span>, PyObject_Hash(plugin_instance));</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;protocol&quot;</span>))</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__protocol_8c.html#aaa90f5541895f5c3dedaa16c15d80de7">python_wrapper_create_protocol_plugin</a>(plugin);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; }</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;entry&quot;</span>))</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; {</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__entry_8c.html#ab2e36d6cbec3654566c07c78af3824f9">python_wrapper_create_entry_plugin</a>(plugin);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; }</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;file&quot;</span>))</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__file_8c.html#aefe9849fe9ac63ba035f6de1f77e1edd">python_wrapper_create_file_plugin</a>(plugin);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; }</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;tool&quot;</span>))</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__tool_8c.html#a57245dde610861d678d3a63a57536994">python_wrapper_create_tool_plugin</a>(plugin);</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; }</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;pref&quot;</span>))</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__pref_8c.html#aa80e988cea8ddb51588c979eeb359dae">python_wrapper_create_pref_plugin</a>(plugin);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_equal(pluginType, <span class="stringliteral">&quot;secret&quot;</span>))</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; remmina_plugin = <a class="code" href="python__wrapper__secret_8c.html#af51bb70fa82d6904a51f73c4bb162e91">python_wrapper_create_secret_plugin</a>(plugin);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; g_printerr(<span class="stringliteral">&quot;Unknown plugin type: %s\n&quot;</span>, pluginType);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; }</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keywordflow">if</span> (remmina_plugin)</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">if</span> (remmina_plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>)</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; {</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a> = <a class="code" href="python__wrapper__protocol__widget_8c.html#acbf591be371e01c5bf367018d298d801">python_wrapper_protocol_widget_create</a>();</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;register_plugin((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)remmina_plugin)) {</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; g_print(<span class="stringliteral">&quot;%s: Successfully reigstered!\n&quot;</span>, remmina_plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>);</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; g_print(<span class="stringliteral">&quot;%s: Failed to reigster!\n&quot;</span>, remmina_plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>);</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; }</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; }</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; PyErr_Clear();</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;}</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;</div><div class="line"><a name="l00827"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde"> 827</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde">remmina_file_get_datadir_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;{</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; PyObject* result = Py_None;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keyword">const</span> gchar* datadir = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2919b48fd95b772b590b430a03ecb98f">file_get_user_datadir</a>();</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">if</span> (datadir)</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; {</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; result = PyUnicode_FromFormat(<span class="stringliteral">&quot;%s&quot;</span>, datadir);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;}</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e"> 843</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e">remmina_file_new_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;{</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* file = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#ad0c0e810cad311a80cb73746bc299895">file_new</a>();</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">if</span> (file)</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; {</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">return</span> (PyObject*)<a class="code" href="python__wrapper__remmina__file_8c.html#ac08c793f825c990ec3045b20fb284f03">python_wrapper_remmina_file_to_python</a>(file);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;}</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781"> 857</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781">remmina_pref_set_value_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;{</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;key&quot;</span>, <span class="stringliteral">&quot;value&quot;</span>, NULL };</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; gchar* key, * value;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;ss&quot;</span>, kwlist, &amp;key, &amp;value))</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; }</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">if</span> (key)</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; {</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a387f974b25c4164811f661128e200c8c">pref_set_value</a>(key, value);</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;}</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;</div><div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6"> 878</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">remmina_pref_get_value_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;{</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;key&quot;</span>, NULL };</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; gchar* key;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; PyObject* result = Py_None;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;s&quot;</span>, kwlist, &amp;key))</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; {</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; }</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">if</span> (key)</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; {</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keyword">const</span> gchar* value = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">pref_get_value</a>(key);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; {</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; result = PyUnicode_FromFormat(<span class="stringliteral">&quot;%s&quot;</span>, result);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; }</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;}</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00904"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519"> 904</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">remmina_pref_get_scale_quality_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;{</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; PyObject* result = PyLong_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;pref_get_scale_quality());</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;}</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;</div><div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490"> 913</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">remmina_pref_get_sshtunnel_port_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;{</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; PyObject* result = PyLong_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;pref_get_sshtunnel_port());</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;}</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;</div><div class="line"><a name="l00922"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b"> 922</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">remmina_pref_get_ssh_loglevel_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;{</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; PyObject* result = PyLong_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;pref_get_ssh_loglevel());</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;}</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb"> 931</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">remmina_pref_get_ssh_parseconfig_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;{</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; PyObject* result = PyLong_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;pref_get_ssh_parseconfig());</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;}</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;</div><div class="line"><a name="l00940"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7"> 940</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">remmina_pref_keymap_get_keyval_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;{</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;keymap&quot;</span>, <span class="stringliteral">&quot;keyval&quot;</span>, NULL };</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; gchar* keymap;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; guint keyval;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; PyObject* result = Py_None;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;sl&quot;</span>, kwlist, &amp;keymap, &amp;keyval))</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; {</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">return</span> PyLong_FromLong(-1);</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; }</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordflow">if</span> (keymap)</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keyword">const</span> guint value = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0884b2124ba4ea3f747f00bbe91135d2">pref_keymap_get_keyval</a>(keymap, keyval);</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; result = PyLong_FromUnsignedLong(value);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a>();</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;}</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c"> 964</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c">python_wrapper_log_print_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;{</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; gchar* text;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTuple(args, <span class="stringliteral">&quot;s&quot;</span>, &amp;text) || !text)</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; {</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; }</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2b8a0b0bec032f01906ab197678204de">log_print</a>(text);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;}</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;</div><div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5"> 978</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5">python_wrapper_debug_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;{</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; gchar* text;</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTuple(args, <span class="stringliteral">&quot;s&quot;</span>, &amp;text) || !text)</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; {</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; }</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a588f2c328c535384a0adaac027c4df72">_remmina_debug</a>(<span class="stringliteral">&quot;python&quot;</span>, <span class="stringliteral">&quot;%s&quot;</span>, text);</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;}</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;</div><div class="line"><a name="l00992"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660"> 992</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">remmina_widget_pool_register_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;{</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;widget&quot;</span>, NULL };</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; PyObject* widget;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;O&quot;</span>, kwlist, &amp;widget) &amp;&amp; widget)</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; {</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1bbf968b63ccd08024ebb527e6d6c406">widget_pool_register</a>(<a class="code" href="python__wrapper__common_8c.html#acee67aa338f743ad9978c5de9e7c72aa">get_pywidget</a>(widget));</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;}</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div><div class="line"><a name="l01007"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135"> 1007</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135">rcw_open_from_file_full_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;{</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;remminafile&quot;</span>, <span class="stringliteral">&quot;data&quot;</span>, <span class="stringliteral">&quot;handler&quot;</span>, NULL };</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; PyObject* pyremminafile;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; PyObject* data;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;OOO&quot;</span>, kwlist, &amp;pyremminafile, &amp;data) &amp;&amp; pyremminafile &amp;&amp; data)</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#abd51e82b9296d57abd324aecbf243137">rcw_open_from_file_full</a>((<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>*)pyremminafile, NULL, (<span class="keywordtype">void</span>*)data, NULL);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; }</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;}</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6"> 1023</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">remmina_public_get_server_port_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;{</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;server&quot;</span>, <span class="stringliteral">&quot;defaultport&quot;</span>, <span class="stringliteral">&quot;host&quot;</span>, <span class="stringliteral">&quot;port&quot;</span>, NULL };</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; gchar* server;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; gint defaultport;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;slsl&quot;</span>, kwlist, &amp;server, &amp;defaultport) &amp;&amp; server)</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; {</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; gchar* host;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; gint port;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a6fdfd3063906f49157225f536537bb0f">get_server_port</a>(server, defaultport, &amp;host, &amp;port);</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; PyObject* result = PyList_New(2);</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; PyList_SetItem(result, 0, PyUnicode_FromString(host));</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; PyList_SetItem(result, 1, PyLong_FromLong(port));</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keywordflow">return</span> PyList_AsTuple(result);</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; }</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;}</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;</div><div class="line"><a name="l01047"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f"> 1047</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f">remmina_masterthread_exec_is_main_thread_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;{</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">return</span> PyBool_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;is_main_thread());</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;}</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div><div class="line"><a name="l01054"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d"> 1054</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d">remmina_gtksocket_available_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* plugin)</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;{</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">return</span> PyBool_FromLong(<a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;gtksocket_available());</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;}</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;<span class="keyword">static</span> PyObject*</div><div class="line"><a name="l01062"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8"> 1062</a></span>&#160;<a class="code" href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">remmina_protocol_widget_get_profile_remote_height_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;{</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;widget&quot;</span>, NULL };</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <a class="code" href="struct_py_plugin.html">PyPlugin</a>* plugin;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;O&quot;</span>, kwlist, &amp;plugin) &amp;&amp; plugin &amp;&amp; plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a>)</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; {</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2b75137f9d7739c0d7881ee16e2aabfa">get_profile_remote_height</a>(plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a>-&gt;<a class="code" href="struct_py_remmina_protocol_widget.html#aa32e589462d1defa097cbccc0a74f3af">gp</a>);</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; }</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;}</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="keyword">static</span> PyObject*</div><div class="line"><a name="l01078"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69"> 1078</a></span>&#160;<a class="code" href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">remmina_protocol_widget_get_profile_remote_width_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;{</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;widget&quot;</span>, NULL };</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <a class="code" href="struct_py_plugin.html">PyPlugin</a>* plugin;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;O&quot;</span>, kwlist, &amp;plugin) &amp;&amp; plugin &amp;&amp; plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a>)</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; {</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#afe3c32a421cd5dcc735b99318ff8844a">get_profile_remote_width</a>(plugin-&gt;<a class="code" href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">gp</a>-&gt;<a class="code" href="struct_py_remmina_protocol_widget.html#aa32e589462d1defa097cbccc0a74f3af">gp</a>);</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; }</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;}</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;</div><div class="line"><a name="l01093"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8h.html#a0029840116ce2b2c4d7870d202ce6459"> 1093</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8c.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a>(<a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a>* dest, PyObject* setting)</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;{</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>* src = (<a class="code" href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a>*)setting;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; Py_INCREF(setting);</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b">name</a>;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#a640447ed12db0bee967d350562eea55e">label</a>;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">compact</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#a83f20deb4731925e29fff2a8a16535d6">compact</a>;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#aab4ec78686dfde9ba9a234e218debe16">settingType</a>;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">validator</a> = NULL;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">validator_data</a> = NULL;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a8ddc98141bc274ae10992842aee3a168">python_wrapper_to_generic</a>(src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#a79347dc9c1e71a2594b4df5e3576ad3a">opt1</a>, &amp;dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>);</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a8ddc98141bc274ae10992842aee3a168">python_wrapper_to_generic</a>(src-&gt;<a class="code" href="struct_py_remmina_protocol_setting.html#a9816a20dd4999bfd2f3be57cae6c1888">opt2</a>, &amp;dest-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>);</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;}</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8h.html#ad9cee26b804b78c89cd56e59d71b6250"> 1109</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8c.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a>(<a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* dest, PyObject* feature)</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;{</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>* src = (<a class="code" href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a>*)feature;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; Py_INCREF(feature);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20">id</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#a9f3cc7cfae91a2651c3d78bbc3feb53d">id</a>;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#aecce603234baf1434f3f6aca64616cbc">type</a>;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">opt1</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a>;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b">opt1_type_hint</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">opt1</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a>;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">opt2</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a>;</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7">opt2_type_hint</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">opt2</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a>;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a>-&gt;<a class="code" href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">raw</a>;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; dest-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a9abdee80580cddd54405d0577e459c2c">opt3_type_hint</a> = src-&gt;<a class="code" href="struct_py_remmina_protocol_feature.html#af47063cd1082038eeae47af016b1c0d2">opt3</a>-&gt;<a class="code" href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">type_hint</a>;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;}</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;</div><div class="line"><a name="l01125"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08"> 1125</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08">python_wrapper_show_dialog_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args, PyObject* kwargs)</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;{</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span>* kwlist[] = { <span class="stringliteral">&quot;type&quot;</span>, <span class="stringliteral">&quot;buttons&quot;</span>, <span class="stringliteral">&quot;message&quot;</span>, NULL };</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; GtkMessageType msgType;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; GtkButtonsType btnType;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; gchar* message;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwargs, <span class="stringliteral">&quot;lls&quot;</span>, kwlist, &amp;msgType, &amp;btnType, &amp;message))</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; {</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordflow">return</span> PyLong_FromLong(-1);</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; }</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#afea11ab21bd7e00addf5a3696519be6d">show_dialog</a>(msgType, btnType, message);</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;}</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f"> 1144</a></span>&#160;PyObject* <a class="code" href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f">python_wrapper_get_mainwindow_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;{</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; GtkWindow* result = <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#a71ec795b6643f1d0aec1a18894eacbd1">get_window</a>();</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">if</span> (!result)</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; {</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; }</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <span class="keywordflow">return</span> (PyObject*)<a class="code" href="python__wrapper__common_8c.html#a236e763fb994ac7f25e182b7e792b222">new_pywidget</a>((GObject*)result);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;}</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;</div><div class="line"><a name="l01158"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e"> 1158</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e">remmina_protocol_plugin_signal_connection_closed_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;{</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; PyObject* pygp = NULL;</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTuple(args, <span class="stringliteral">&quot;O&quot;</span>, &amp;pygp) || !pygp)</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; {</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; g_printerr(<span class="stringliteral">&quot;Please provide the Remmina protocol widget instance!&quot;</span>);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; }</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(((<a class="code" href="struct_py_remmina_protocol_widget.html">PyRemminaProtocolWidget</a>*)pygp)-&gt;gp);</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;}</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;</div><div class="line"><a name="l01173"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58"> 1173</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58">remmina_protocol_plugin_init_auth_wrapper</a>(PyObject* module, PyObject* args, PyObject* kwds)</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;{</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keyword">static</span> gchar* keyword_list[] = { <span class="stringliteral">&quot;widget&quot;</span>, <span class="stringliteral">&quot;flags&quot;</span>, <span class="stringliteral">&quot;title&quot;</span>, <span class="stringliteral">&quot;default_username&quot;</span>, <span class="stringliteral">&quot;default_password&quot;</span>,</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="stringliteral">&quot;default_domain&quot;</span>, <span class="stringliteral">&quot;password_prompt&quot;</span> };</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <a class="code" href="struct_py_remmina_protocol_widget.html">PyRemminaProtocolWidget</a>* <span class="keyword">self</span>;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; gint pflags = 0;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; gchar* title, * default_username, * default_password, * default_domain, * password_prompt;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keywordflow">if</span> (PyArg_ParseTupleAndKeywords(args, kwds, <span class="stringliteral">&quot;Oisssss&quot;</span>, keyword_list, &amp;<span class="keyword">self</span>, &amp;pflags, &amp;title, &amp;default_username,</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; &amp;default_password, &amp;default_domain, &amp;password_prompt))</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; {</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordflow">if</span> (pflags != 0 &amp;&amp; !(pflags &amp; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a>)</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; &amp;&amp; !(pflags &amp; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a>)</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; &amp;&amp; !(pflags &amp; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>)</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; &amp;&amp; !(pflags &amp; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>))</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; {</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; g_printerr(<span class="stringliteral">&quot;panel_auth(pflags, title, default_username, default_password, default_domain, password_prompt): &quot;</span></div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="stringliteral">&quot;%d is not a known value for RemminaMessagePanelFlags!\n&quot;</span>, pflags);</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; }</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; {</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">return</span> Py_BuildValue(<span class="stringliteral">&quot;i&quot;</span>, <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;protocol_widget_panel_auth(<span class="keyword">self</span></div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; -&gt;gp, pflags, title, default_username, default_password, default_domain, password_prompt));</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; }</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; }</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; {</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; g_printerr(<span class="stringliteral">&quot;panel_auth(pflags, title, default_username, default_password, default_domain, password_prompt): Error parsing arguments!\n&quot;</span>);</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; PyErr_Print();</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; }</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;}</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;</div><div class="line"><a name="l01209"></a><span class="lineno"><a class="line" href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d"> 1209</a></span>&#160;<span class="keyword">static</span> PyObject* <a class="code" href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d">remmina_protocol_plugin_signal_connection_opened_wrapper</a>(PyObject* <span class="keyword">self</span>, PyObject* args)</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;{</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; PyObject* pygp = NULL;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="keywordflow">if</span> (!PyArg_ParseTuple(args, <span class="stringliteral">&quot;O&quot;</span>, &amp;pygp) || !pygp)</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; {</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; g_printerr(<span class="stringliteral">&quot;Please provide the Remmina protocol widget instance!&quot;</span>);</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; }</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <a class="code" href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a>()-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(((<a class="code" href="struct_py_remmina_protocol_widget.html">PyRemminaProtocolWidget</a>*)pygp)-&gt;gp);</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keywordflow">return</span> Py_None;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;}</div><div class="ttc" id="python__wrapper__remmina_8c_html_aeab116a7d57ed18c3abb8c46408d9549"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aeab116a7d57ed18c3abb8c46408d9549">remmina_register_plugin_wrapper</a></div><div class="ttdeci">static PyObject * remmina_register_plugin_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00751">python_wrapper_remmina.c:751</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_feature_html_af4cd1fe41db52b31d6715c6535d600c0"><div class="ttname"><a href="struct_py_remmina_protocol_feature.html#af4cd1fe41db52b31d6715c6535d600c0">PyRemminaProtocolFeature::opt2</a></div><div class="ttdeci">PyGeneric * opt2</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00065">python_wrapper_protocol.h:65</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a1272ba4baffd8e425c7ae30fbb00602e"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e">remmina_file_new_wrapper</a></div><div class="ttdeci">static PyObject * remmina_file_new_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00842">python_wrapper_remmina.c:842</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a1272ba4baffd8e425c7ae30fbb00602e"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a1272ba4baffd8e425c7ae30fbb00602e">remmina_file_new_wrapper</a></div><div class="ttdeci">static PyObject * remmina_file_new_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00843">python_wrapper_remmina.c:843</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a2c2867c86c4a02f836e2f04369d770a0"><div class="ttname"><a href="python__wrapper__common_8c.html#a2c2867c86c4a02f836e2f04369d770a0">python_wrapper_check_error</a></div><div class="ttdeci">gboolean python_wrapper_check_error(void)</div><div class="ttdoc">Checks if an error has occurred and prints it. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00098">python_wrapper_common.c:98</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html"><div class="ttname"><a href="struct___remmina_plugin.html">_RemminaPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00056">plugin.h:56</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_ad112bebbdfe15ce6a66b433bd1e7108b"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">remmina_pref_get_ssh_loglevel_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_ssh_loglevel_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00921">python_wrapper_remmina.c:921</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_ad112bebbdfe15ce6a66b433bd1e7108b"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad112bebbdfe15ce6a66b433bd1e7108b">remmina_pref_get_ssh_loglevel_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_ssh_loglevel_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00922">python_wrapper_remmina.c:922</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_setting_html_a9816a20dd4999bfd2f3be57cae6c1888"><div class="ttname"><a href="struct_py_remmina_protocol_setting.html#a9816a20dd4999bfd2f3be57cae6c1888">PyRemminaProtocolSetting::opt2</a></div><div class="ttdeci">PyObject * opt2</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00232">python_wrapper_remmina.c:232</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00052">types.h:52</a></div></div>
<div class="ttc" id="types_8h_html"><div class="ttname"><a href="types_8h.html">types.h</a></div></div>
@@ -100,16 +100,16 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
<div class="ttc" id="struct_py_remmina_protocol_feature_html_aecce603234baf1434f3f6aca64616cbc"><div class="ttname"><a href="struct_py_remmina_protocol_feature.html#aecce603234baf1434f3f6aca64616cbc">PyRemminaProtocolFeature::type</a></div><div class="ttdeci">PyObject_HEAD RemminaProtocolFeatureType type</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00062">python_wrapper_protocol.h:62</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_ad32c23fde1f6d93382853fed97c51885"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad32c23fde1f6d93382853fed97c51885">python_protocol_feature_members</a></div><div class="ttdeci">static PyMemberDef python_protocol_feature_members[]</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00349">python_wrapper_remmina.c:349</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_aa46cd87c89cf5953eec19be2edffe652"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aa46cd87c89cf5953eec19be2edffe652">python_screenshot_data_type</a></div><div class="ttdeci">static PyTypeObject python_screenshot_data_type</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00463">python_wrapper_remmina.c:463</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_aa3f81ddb59721fc45ae6752a357d2490"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">remmina_pref_get_sshtunnel_port_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_sshtunnel_port_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00912">python_wrapper_remmina.c:912</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_aa3f81ddb59721fc45ae6752a357d2490"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aa3f81ddb59721fc45ae6752a357d2490">remmina_pref_get_sshtunnel_port_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_sshtunnel_port_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00913">python_wrapper_remmina.c:913</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="python__wrapper__remmina__file_8h_html"><div class="ttname"><a href="python__wrapper__remmina__file_8h.html">python_wrapper_remmina_file.h</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_feature_html"><div class="ttname"><a href="struct_py_remmina_protocol_feature.html">PyRemminaProtocolFeature</a></div><div class="ttdoc">Wrapper for a Python object that contains a pointer to an instance of RemminaProtocolFeature. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00059">python_wrapper_protocol.h:59</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00112">types.h:112</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="struct_py_remmina_plugin_screenshot_data_html"><div class="ttname"><a href="struct_py_remmina_plugin_screenshot_data.html">PyRemminaPluginScreenshotData</a></div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00072">python_wrapper_protocol.h:72</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_abd51e82b9296d57abd324aecbf243137"><div class="ttname"><a href="struct___remmina_plugin_service.html#abd51e82b9296d57abd324aecbf243137">_RemminaPluginService::rcw_open_from_file_full</a></div><div class="ttdeci">GtkWidget *(* rcw_open_from_file_full)(RemminaFile *remminafile, GCallback disconnect_cb, gpointer data, guint *handler)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00301">plugin.h:301</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a0029840116ce2b2c4d7870d202ce6459"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a></div><div class="ttdeci">void python_wrapper_to_protocol_setting(RemminaProtocolSetting *dest, PyObject *setting)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolSetting. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01092">python_wrapper_remmina.c:1092</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a0029840116ce2b2c4d7870d202ce6459"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a></div><div class="ttdeci">void python_wrapper_to_protocol_setting(RemminaProtocolSetting *dest, PyObject *setting)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolSetting. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01093">python_wrapper_remmina.c:1093</a></div></div>
<div class="ttc" id="struct_py_remmina_plugin_screenshot_data_html_a6e0de9833ceda28199a84c4c10437e46"><div class="ttname"><a href="struct_py_remmina_plugin_screenshot_data.html#a6e0de9833ceda28199a84c4c10437e46">PyRemminaPluginScreenshotData::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00078">python_wrapper_protocol.h:78</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a2919b48fd95b772b590b430a03ecb98f"><div class="ttname"><a href="struct___remmina_plugin_service.html#a2919b48fd95b772b590b430a03ecb98f">_RemminaPluginService::file_get_user_datadir</a></div><div class="ttdeci">gchar *(* file_get_user_datadir)(void)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00214">plugin.h:214</a></div></div>
<div class="ttc" id="struct_py_plugin_html"><div class="ttname"><a href="struct_py_plugin.html">PyPlugin</a></div><div class="ttdoc">Maps an instance of a Python plugin to a Remmina one. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00126">python_wrapper_common.h:126</a></div></div>
@@ -129,6 +129,7 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00053">types.h:53</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a4a8a4735511a148ef3e81980671b3503"><div class="ttname"><a href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a></div><div class="ttdeci">void * python_wrapper_malloc(int bytes)</div><div class="ttdoc">Allocates memory and checks for errors before returning. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00154">python_wrapper_common.c:154</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_adf58bae87972fe68fa239199e7ca6e1b"><div class="ttname"><a href="python__wrapper__remmina_8c.html#adf58bae87972fe68fa239199e7ca6e1b">remmina_python_module_type_methods</a></div><div class="ttdeci">static PyMethodDef remmina_python_module_type_methods[]</div><div class="ttdoc">Declares functions for the Remmina module. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00097">python_wrapper_remmina.c:97</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_ad676d99c4833507cb8f6843e1b02f184"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184">python_wrapper_generic_to_string</a></div><div class="ttdeci">static PyObject * python_wrapper_generic_to_string(PyGeneric *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00589">python_wrapper_remmina.c:589</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
@@ -143,7 +144,7 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00054">types.h:54</a></div></div>
<div class="ttc" id="struct_py_generic_html_a1c5857c0a7ee53cbcdcd009b4d9900e7"><div class="ttname"><a href="struct_py_generic.html#a1c5857c0a7ee53cbcdcd009b4d9900e7">PyGeneric::raw</a></div><div class="ttdeci">gpointer raw</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00146">python_wrapper_common.h:146</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a0884b2124ba4ea3f747f00bbe91135d2"><div class="ttname"><a href="struct___remmina_plugin_service.html#a0884b2124ba4ea3f747f00bbe91135d2">_RemminaPluginService::pref_keymap_get_keyval</a></div><div class="ttdeci">guint(* pref_keymap_get_keyval)(const gchar *keymap, guint keyval)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00233">plugin.h:233</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
<div class="ttc" id="struct_py_plugin_html_a50c373b557faddaf959746d7086cbd4f"><div class="ttname"><a href="struct_py_plugin.html#a50c373b557faddaf959746d7086cbd4f">PyPlugin::file_plugin</a></div><div class="ttdeci">RemminaFilePlugin * file_plugin</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00129">python_wrapper_common.h:129</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350">RemminaProtocolSettingType</a></div><div class="ttdeci">RemminaProtocolSettingType</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00097">types.h:97</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_setting_html_a83f20deb4731925e29fff2a8a16535d6"><div class="ttname"><a href="struct_py_remmina_protocol_setting.html#a83f20deb4731925e29fff2a8a16535d6">PyRemminaProtocolSetting::compact</a></div><div class="ttdeci">gboolean compact</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00230">python_wrapper_remmina.c:230</a></div></div>
@@ -154,7 +155,7 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
<div class="ttc" id="struct_py_plugin_html_a00183896cad1d1b31b3c5cb724db001f"><div class="ttname"><a href="struct_py_plugin.html#a00183896cad1d1b31b3c5cb724db001f">PyPlugin::protocol_plugin</a></div><div class="ttdeci">RemminaProtocolPlugin * protocol_plugin</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00128">python_wrapper_common.h:128</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ab58b7bf5f91c5f60349a8242e6322f7f"><div class="ttname"><a href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">_RemminaPluginService::protocol_plugin_signal_connection_closed</a></div><div class="ttdeci">void(* protocol_plugin_signal_connection_closed)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00185">plugin.h:185</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_a6ddedbe95ca1150b29058acfdb188824"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a6ddedbe95ca1150b29058acfdb188824">python_protocol_setting_type</a></div><div class="ttdeci">static PyTypeObject python_protocol_setting_type</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00334">python_wrapper_remmina.c:334</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a55a12c6ed9ab21954208e0e83165f770"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">_RemminaProtocolSetting::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00122">types.h:122</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a55a12c6ed9ab21954208e0e83165f770"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">_RemminaProtocolSetting::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00123">types.h:123</a></div></div>
<div class="ttc" id="python__wrapper__tool_8c_html_ac1e8af0e4f21e009c4052483a09fa606"><div class="ttname"><a href="python__wrapper__tool_8c.html#ac1e8af0e4f21e009c4052483a09fa606">python_wrapper_tool_init</a></div><div class="ttdeci">void python_wrapper_tool_init(void)</div><div class="ttdoc">Initializes the Python plugin specialisation for tool plugins. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__tool_8c_source.html#l00045">python_wrapper_tool.c:45</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a2b8a0b0bec032f01906ab197678204de"><div class="ttname"><a href="struct___remmina_plugin_service.html#a2b8a0b0bec032f01906ab197678204de">_RemminaPluginService::log_print</a></div><div class="ttdeci">void(* log_print)(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00242">plugin.h:242</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_feature_html_ae952bdad284cbef56bcc598c9e2743b4"><div class="ttname"><a href="struct_py_remmina_protocol_feature.html#ae952bdad284cbef56bcc598c9e2743b4">PyRemminaProtocolFeature::opt1</a></div><div class="ttdeci">PyGeneric * opt1</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00064">python_wrapper_protocol.h:64</a></div></div>
@@ -162,15 +163,15 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
<div class="ttc" id="python__wrapper__remmina_8c_html_a26eea3cdd2d97d5cd8ad00d2bbe17c29"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a26eea3cdd2d97d5cd8ad00d2bbe17c29">python_wrapper_protocol_feature_new</a></div><div class="ttdeci">PyRemminaProtocolFeature * python_wrapper_protocol_feature_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00407">python_wrapper_remmina.c:407</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_setting_html_a640447ed12db0bee967d350562eea55e"><div class="ttname"><a href="struct_py_remmina_protocol_setting.html#a640447ed12db0bee967d350562eea55e">PyRemminaProtocolSetting::label</a></div><div class="ttdeci">gchar * label</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00229">python_wrapper_remmina.c:229</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a236e763fb994ac7f25e182b7e792b222"><div class="ttname"><a href="python__wrapper__common_8c.html#a236e763fb994ac7f25e182b7e792b222">new_pywidget</a></div><div class="ttdeci">GtkWidget * new_pywidget(GObject *obj)</div><div class="ttdoc">Creates a new GtkWidget. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00319">python_wrapper_common.c:319</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ab434990a6fe70b7e8a4a8b11129527a6"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">_RemminaProtocolSetting::compact</a></div><div class="ttdeci">gboolean compact</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00120">types.h:120</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a274f120396b0399dacab0565aa286ed6"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">remmina_pref_get_value_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_value_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00877">python_wrapper_remmina.c:877</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ab434990a6fe70b7e8a4a8b11129527a6"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">_RemminaProtocolSetting::compact</a></div><div class="ttdeci">gboolean compact</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00121">types.h:121</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a274f120396b0399dacab0565aa286ed6"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a274f120396b0399dacab0565aa286ed6">remmina_pref_get_value_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_value_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00878">python_wrapper_remmina.c:878</a></div></div>
<div class="ttc" id="python__wrapper__secret_8c_html_af51bb70fa82d6904a51f73c4bb162e91"><div class="ttname"><a href="python__wrapper__secret_8c.html#af51bb70fa82d6904a51f73c4bb162e91">python_wrapper_create_secret_plugin</a></div><div class="ttdeci">RemminaPlugin * python_wrapper_create_secret_plugin(PyPlugin *plugin)</div><div class="ttdoc">Creates a new instance of the RemminaPluginSecret, initializes its members and references the wrapper...</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__secret_8c_source.html#l00106">python_wrapper_secret.c:106</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_aacf9837276323e7dcd1e60fcca68b781"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781">remmina_pref_set_value_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_set_value_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00856">python_wrapper_remmina.c:856</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_aacf9837276323e7dcd1e60fcca68b781"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aacf9837276323e7dcd1e60fcca68b781">remmina_pref_set_value_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_set_value_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00857">python_wrapper_remmina.c:857</a></div></div>
<div class="ttc" id="struct_py_plugin_html_aeba82110f6ea8b55fcbebe80f5134c82"><div class="ttname"><a href="struct_py_plugin.html#aeba82110f6ea8b55fcbebe80f5134c82">PyPlugin::tool_plugin</a></div><div class="ttdeci">RemminaToolPlugin * tool_plugin</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00131">python_wrapper_common.h:131</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ab212bed4baf8cba148fadb5773148ad6"><div class="ttname"><a href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">_RemminaPluginService::protocol_plugin_signal_connection_opened</a></div><div class="ttdeci">void(* protocol_plugin_signal_connection_opened)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00186">plugin.h:186</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00049">types.h:49</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_af5e38067a8df4449cc12618409d9afe1"><div class="ttname"><a href="python__wrapper__remmina_8c.html#af5e38067a8df4449cc12618409d9afe1">python_wrapper_generic_init</a></div><div class="ttdeci">static int python_wrapper_generic_init(PyGeneric *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00521">python_wrapper_remmina.c:521</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a841da3c5b4b3b75ab959f58603f0e135"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135">rcw_open_from_file_full_wrapper</a></div><div class="ttdeci">static PyObject * rcw_open_from_file_full_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01006">python_wrapper_remmina.c:1006</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a841da3c5b4b3b75ab959f58603f0e135"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a841da3c5b4b3b75ab959f58603f0e135">rcw_open_from_file_full_wrapper</a></div><div class="ttdeci">static PyObject * rcw_open_from_file_full_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01007">python_wrapper_remmina.c:1007</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a387f974b25c4164811f661128e200c8c"><div class="ttname"><a href="struct___remmina_plugin_service.html#a387f974b25c4164811f661128e200c8c">_RemminaPluginService::pref_set_value</a></div><div class="ttdeci">void(* pref_set_value)(const gchar *key, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00226">plugin.h:226</a></div></div>
<div class="ttc" id="python__wrapper__protocol_8c_html_ab223d3563d16258e33e8dfae0ee41e5d"><div class="ttname"><a href="python__wrapper__protocol_8c.html#ab223d3563d16258e33e8dfae0ee41e5d">python_wrapper_protocol_init</a></div><div class="ttdeci">void python_wrapper_protocol_init(void)</div><div class="ttdoc">Initializes the Python plugin specialisation for protocol plugins. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8c_source.html#l00057">python_wrapper_protocol.c:57</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00048">types.h:48</a></div></div>
@@ -180,64 +181,64 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
<div class="ttc" id="struct_py_remmina_plugin_screenshot_data_html_a79271016958eb788bdbd7184b9af0bd7"><div class="ttname"><a href="struct_py_remmina_plugin_screenshot_data.html#a79271016958eb788bdbd7184b9af0bd7">PyRemminaPluginScreenshotData::bitsPerPixel</a></div><div class="ttdeci">int bitsPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00076">python_wrapper_protocol.h:76</a></div></div>
<div class="ttc" id="struct_py_plugin_html_a1c03e220a1192e29221b3a8e11ff91f4"><div class="ttname"><a href="struct_py_plugin.html#a1c03e220a1192e29221b3a8e11ff91f4">PyPlugin::gp</a></div><div class="ttdeci">PyRemminaProtocolWidget * gp</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00135">python_wrapper_common.h:135</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd">REMMINA_TYPEHINT_STRING</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00062">types.h:62</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00131">types.h:131</a></div></div>
<div class="ttc" id="python__wrapper__remmina__file_8c_html_ac08c793f825c990ec3045b20fb284f03"><div class="ttname"><a href="python__wrapper__remmina__file_8c.html#ac08c793f825c990ec3045b20fb284f03">python_wrapper_remmina_file_to_python</a></div><div class="ttdeci">PyRemminaFile * python_wrapper_remmina_file_to_python(RemminaFile *file)</div><div class="ttdoc">Converts the instance of RemminaFile to a Python object that can be passed to the Python engine...</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina__file_8c_source.html#l00090">python_wrapper_remmina_file.c:90</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a49e2591a6dab3d89be95bf7be2c5777d"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d">remmina_gtksocket_available_wrapper</a></div><div class="ttdeci">static PyObject * remmina_gtksocket_available_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01053">python_wrapper_remmina.c:1053</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ae1cc5b9d910f68aa5909e3cf483c1d1d"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">_RemminaProtocolSetting::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00121">types.h:121</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a49e2591a6dab3d89be95bf7be2c5777d"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a49e2591a6dab3d89be95bf7be2c5777d">remmina_gtksocket_available_wrapper</a></div><div class="ttdeci">static PyObject * remmina_gtksocket_available_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01054">python_wrapper_remmina.c:1054</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ae1cc5b9d910f68aa5909e3cf483c1d1d"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">_RemminaProtocolSetting::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00122">types.h:122</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_ad291d7929fade69745148ab417a4bf74"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad291d7929fade69745148ab417a4bf74">python_protocol_feature_new</a></div><div class="ttdeci">PyObject * python_protocol_feature_new(PyTypeObject *type, PyObject *kws, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00358">python_wrapper_remmina.c:358</a></div></div>
<div class="ttc" id="python__wrapper__file_8c_html_aefe9849fe9ac63ba035f6de1f77e1edd"><div class="ttname"><a href="python__wrapper__file_8c.html#aefe9849fe9ac63ba035f6de1f77e1edd">python_wrapper_create_file_plugin</a></div><div class="ttdeci">RemminaPlugin * python_wrapper_create_file_plugin(PyPlugin *plugin)</div><div class="ttdoc">Creates a new instance of the RemminaPluginFile, initializes its members and references the wrapper f...</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__file_8c_source.html#l00127">python_wrapper_file.c:127</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a002b34038d8b600d96327fd38bd59fde"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde">remmina_file_get_datadir_wrapper</a></div><div class="ttdeci">static PyObject * remmina_file_get_datadir_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00826">python_wrapper_remmina.c:826</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a002b34038d8b600d96327fd38bd59fde"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a002b34038d8b600d96327fd38bd59fde">remmina_file_get_datadir_wrapper</a></div><div class="ttdeci">static PyObject * remmina_file_get_datadir_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00827">python_wrapper_remmina.c:827</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_feature_html_a9f3cc7cfae91a2651c3d78bbc3feb53d"><div class="ttname"><a href="struct_py_remmina_protocol_feature.html#a9f3cc7cfae91a2651c3d78bbc3feb53d">PyRemminaProtocolFeature::id</a></div><div class="ttdeci">gint id</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00063">python_wrapper_protocol.h:63</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_adba1aaf354842305c8aafd7340271df7"><div class="ttname"><a href="python__wrapper__remmina_8c.html#adba1aaf354842305c8aafd7340271df7">python_protocol_feature_init</a></div><div class="ttdeci">static int python_protocol_feature_init(PyRemminaProtocolFeature *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00382">python_wrapper_remmina.c:382</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_adbec50426452678e9f7039a1df6cb9bf"><div class="ttname"><a href="python__wrapper__remmina_8c.html#adbec50426452678e9f7039a1df6cb9bf">python_protocol_setting_new</a></div><div class="ttdeci">static PyObject * python_protocol_setting_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)</div><div class="ttdoc">Initializes the memory and the fields of the remmina.Setting Python type. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00252">python_wrapper_remmina.c:252</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a1826baafd2d7b5dc8a009ef4fcad77e9"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">_RemminaProtocolFeature::type</a></div><div class="ttdeci">RemminaProtocolFeatureType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00073">types.h:73</a></div></div>
<div class="ttc" id="python__wrapper__secret_8c_html_a5fb260ce16d8eea90b85d876c6b7b736"><div class="ttname"><a href="python__wrapper__secret_8c.html#a5fb260ce16d8eea90b85d876c6b7b736">python_wrapper_secret_init</a></div><div class="ttdeci">void python_wrapper_secret_init(void)</div><div class="ttdoc">Initializes the Python plugin specialisation for secret plugins. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__secret_8c_source.html#l00046">python_wrapper_secret.c:46</a></div></div>
<div class="ttc" id="python__wrapper__pref_8c_html_a1eea0842a9ec8ca72850f3b9def42b64"><div class="ttname"><a href="python__wrapper__pref_8c.html#a1eea0842a9ec8ca72850f3b9def42b64">python_wrapper_pref_init</a></div><div class="ttdeci">void python_wrapper_pref_init(void)</div><div class="ttdoc">Initializes the Python plugin specialisation for preferences plugins. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__pref_8c_source.html#l00049">python_wrapper_pref.c:49</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_abd69575c9a3a3b1f6a551e78d1d73ecb"><div class="ttname"><a href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">remmina_pref_get_ssh_parseconfig_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_ssh_parseconfig_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00930">python_wrapper_remmina.c:930</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_abd69575c9a3a3b1f6a551e78d1d73ecb"><div class="ttname"><a href="python__wrapper__remmina_8c.html#abd69575c9a3a3b1f6a551e78d1d73ecb">remmina_pref_get_ssh_parseconfig_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_ssh_parseconfig_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00931">python_wrapper_remmina.c:931</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_ab3c15094a16418c5951c5382c8a44190"><div class="ttname"><a href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">_RemminaProtocolFeature::opt3</a></div><div class="ttdeci">gpointer opt3</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00077">types.h:77</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a71ec795b6643f1d0aec1a18894eacbd1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a71ec795b6643f1d0aec1a18894eacbd1">_RemminaPluginService::get_window</a></div><div class="ttdeci">GtkWindow *(* get_window)(void)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00303">plugin.h:303</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a685b2ce44daa9ed47ba4987b4183a0a2"><div class="ttname"><a href="python__wrapper__common_8c.html#a685b2ce44daa9ed47ba4987b4183a0a2">python_wrapper_copy_string_from_python</a></div><div class="ttdeci">char * python_wrapper_copy_string_from_python(PyObject *string, Py_ssize_t len)</div><div class="ttdoc">Copies a string from a Python object to a new point in memory. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00172">python_wrapper_common.c:172</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_aba149cac8b96d81753784e266559de08"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08">python_wrapper_show_dialog_wrapper</a></div><div class="ttdeci">static PyObject * python_wrapper_show_dialog_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01124">python_wrapper_remmina.c:1124</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_aba149cac8b96d81753784e266559de08"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aba149cac8b96d81753784e266559de08">python_wrapper_show_dialog_wrapper</a></div><div class="ttdeci">static PyObject * python_wrapper_show_dialog_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01125">python_wrapper_remmina.c:1125</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a860dc4e2fc1479ec1cbdcc53236df9e9"><div class="ttname"><a href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">_RemminaPluginService::pref_get_value</a></div><div class="ttdeci">gchar *(* pref_get_value)(const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00227">plugin.h:227</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_aeb41a864c1147dac89d4d7f46546e9ad"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aeb41a864c1147dac89d4d7f46546e9ad">python_wrapper_generic_type_new</a></div><div class="ttdeci">PyObject * python_wrapper_generic_type_new(PyTypeObject *type, PyObject *kws, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00507">python_wrapper_remmina.c:507</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_ad1f61fdcb71c0511a084ee18b5f0e6a8"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">remmina_protocol_widget_get_profile_remote_height_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_widget_get_profile_remote_height_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01061">python_wrapper_remmina.c:1061</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_ad1f61fdcb71c0511a084ee18b5f0e6a8"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad1f61fdcb71c0511a084ee18b5f0e6a8">remmina_protocol_widget_get_profile_remote_height_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_widget_get_profile_remote_height_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01062">python_wrapper_remmina.c:1062</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_afea11ab21bd7e00addf5a3696519be6d"><div class="ttname"><a href="struct___remmina_plugin_service.html#afea11ab21bd7e00addf5a3696519be6d">_RemminaPluginService::show_dialog</a></div><div class="ttdeci">void(* show_dialog)(GtkMessageType msg, GtkButtonsType buttons, const gchar *message)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00302">plugin.h:302</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a3b418228bdac6a9686f79ba1de8dad58"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58">remmina_protocol_plugin_init_auth_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_plugin_init_auth_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01172">python_wrapper_remmina.c:1172</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a3b418228bdac6a9686f79ba1de8dad58"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a3b418228bdac6a9686f79ba1de8dad58">remmina_protocol_plugin_init_auth_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_plugin_init_auth_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01173">python_wrapper_remmina.c:1173</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a263f103052d2f37c1462a34af94ffaab"><div class="ttname"><a href="python__wrapper__common_8c.html#a263f103052d2f37c1462a34af94ffaab">python_wrapper_get_service</a></div><div class="ttdeci">RemminaPluginService * python_wrapper_get_service(void)</div><div class="ttdoc">Gets the pointer to the plugin service of Remmina. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00199">python_wrapper_common.c:199</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_setting_html_aab4ec78686dfde9ba9a234e218debe16"><div class="ttname"><a href="struct_py_remmina_protocol_setting.html#aab4ec78686dfde9ba9a234e218debe16">PyRemminaProtocolSetting::settingType</a></div><div class="ttdeci">PyObject_HEAD RemminaProtocolSettingType settingType</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00227">python_wrapper_remmina.c:227</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_a283437478ea12510fe4cc035bc70fcb8"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a283437478ea12510fe4cc035bc70fcb8">python_wrapper_generic_methods</a></div><div class="ttdeci">static PyMethodDef python_wrapper_generic_methods[]</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00495">python_wrapper_remmina.c:495</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_setting_html_a79347dc9c1e71a2594b4df5e3576ad3a"><div class="ttname"><a href="struct_py_remmina_protocol_setting.html#a79347dc9c1e71a2594b4df5e3576ad3a">PyRemminaProtocolSetting::opt1</a></div><div class="ttdeci">PyObject * opt1</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00231">python_wrapper_remmina.c:231</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a4b8ffd6e32126a9c4d2074521279b12b"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b">_RemminaProtocolFeature::opt1_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt1_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00078">types.h:78</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6086b43049072a3a3245c4a45f43dbc5"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">_RemminaProtocolSetting::validator_data</a></div><div class="ttdeci">gpointer validator_data</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00123">types.h:123</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00132">types.h:132</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6086b43049072a3a3245c4a45f43dbc5"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">_RemminaProtocolSetting::validator_data</a></div><div class="ttdeci">gpointer validator_data</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00124">types.h:124</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00133">types.h:133</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e">REMMINA_TYPEHINT_BOOLEAN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00065">types.h:65</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a2b75137f9d7739c0d7881ee16e2aabfa"><div class="ttname"><a href="struct___remmina_plugin_service.html#a2b75137f9d7739c0d7881ee16e2aabfa">_RemminaPluginService::get_profile_remote_height</a></div><div class="ttdeci">gint(* get_profile_remote_height)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00253">plugin.h:253</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00102">types.h:102</a></div></div>
<div class="ttc" id="python__wrapper__protocol_8h_html"><div class="ttname"><a href="python__wrapper__protocol_8h.html">python_wrapper_protocol.h</a></div><div class="ttdoc">Contains the specialisation of RemminaPluginFile plugins in Python. </div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a2c26946525eaffe351b6153a6786153d"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d">remmina_protocol_plugin_signal_connection_opened_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_plugin_signal_connection_opened_wrapper(PyObject *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01208">python_wrapper_remmina.c:1208</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a2c26946525eaffe351b6153a6786153d"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d">remmina_protocol_plugin_signal_connection_opened_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_plugin_signal_connection_opened_wrapper(PyObject *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01209">python_wrapper_remmina.c:1209</a></div></div>
<div class="ttc" id="struct_py_remmina_plugin_screenshot_data_html_a74e84cd06fe5493d2e309fa422e0349e"><div class="ttname"><a href="struct_py_remmina_plugin_screenshot_data.html#a74e84cd06fe5493d2e309fa422e0349e">PyRemminaPluginScreenshotData::bytesPerPixel</a></div><div class="ttdeci">int bytesPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00077">python_wrapper_protocol.h:77</a></div></div>
<div class="ttc" id="struct_py_remmina_plugin_screenshot_data_html_aac36eb74554bd33d71ae4b6531ffa720"><div class="ttname"><a href="struct_py_remmina_plugin_screenshot_data.html#aac36eb74554bd33d71ae4b6531ffa720">PyRemminaPluginScreenshotData::buffer</a></div><div class="ttdeci">PyObject_HEAD PyByteArrayObject * buffer</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8h_source.html#l00075">python_wrapper_protocol.h:75</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a94df87db138d4e44e81b3e6c99148ed3"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">_RemminaProtocolSetting::validator</a></div><div class="ttdeci">GCallback validator</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00124">types.h:124</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a94df87db138d4e44e81b3e6c99148ed3"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">_RemminaProtocolSetting::validator</a></div><div class="ttdeci">GCallback validator</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00125">types.h:125</a></div></div>
<div class="ttc" id="struct_py_generic_html_a0282ae57a7189fd68fad0d960b60cb7f"><div class="ttname"><a href="struct_py_generic.html#a0282ae57a7189fd68fad0d960b60cb7f">PyGeneric::type_hint</a></div><div class="ttdeci">RemminaTypeHint type_hint</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00145">python_wrapper_common.h:145</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a006b0d6d883c6dd0da6c444991973ac7"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7">_RemminaProtocolFeature::opt2_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt2_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00079">types.h:79</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_aa7ac5ec9d95867734619583a2049e952"><div class="ttname"><a href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">_RemminaProtocolFeature::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00075">types.h:75</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a33414e624f0348f8577cf295dce2bace"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a></div><div class="ttdeci">gboolean python_wrapper_check_mandatory_member(PyObject *instance, const gchar *member)</div><div class="ttdoc">Util function to check if a specific member is define in a Python object. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00737">python_wrapper_remmina.c:737</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a33414e624f0348f8577cf295dce2bace"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a33414e624f0348f8577cf295dce2bace">python_wrapper_check_mandatory_member</a></div><div class="ttdeci">gboolean python_wrapper_check_mandatory_member(PyObject *instance, const gchar *member)</div><div class="ttdoc">Util function to check if a specific member is define in a Python object. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00738">python_wrapper_remmina.c:738</a></div></div>
<div class="ttc" id="python__wrapper__secret_8h_html"><div class="ttname"><a href="python__wrapper__secret_8h.html">python_wrapper_secret.h</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_a54baa8db22d6f805b8e2193b3b313403"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a54baa8db22d6f805b8e2193b3b313403">python_generic_type</a></div><div class="ttdeci">static PyTypeObject python_generic_type</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00533">python_wrapper_remmina.c:533</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_ad9cee26b804b78c89cd56e59d71b6250"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a></div><div class="ttdeci">void python_wrapper_to_protocol_feature(RemminaProtocolFeature *dest, PyObject *feature)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolFeature. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01108">python_wrapper_remmina.c:1108</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_ad9cee26b804b78c89cd56e59d71b6250"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a></div><div class="ttdeci">void python_wrapper_to_protocol_feature(RemminaProtocolFeature *dest, PyObject *feature)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolFeature. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01109">python_wrapper_remmina.c:1109</a></div></div>
<div class="ttc" id="python__wrapper__entry_8c_html_ab2e36d6cbec3654566c07c78af3824f9"><div class="ttname"><a href="python__wrapper__entry_8c.html#ab2e36d6cbec3654566c07c78af3824f9">python_wrapper_create_entry_plugin</a></div><div class="ttdeci">RemminaPlugin * python_wrapper_create_entry_plugin(PyPlugin *plugin)</div><div class="ttdoc">Creates a new instance of the RemminaPluginEntry, initializes its members and references the wrapper ...</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__entry_8c_source.html#l00071">python_wrapper_entry.c:71</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a8ddc98141bc274ae10992842aee3a168"><div class="ttname"><a href="python__wrapper__common_8c.html#a8ddc98141bc274ae10992842aee3a168">python_wrapper_to_generic</a></div><div class="ttdeci">RemminaTypeHint python_wrapper_to_generic(PyObject *field, gpointer *target)</div><div class="ttdoc">Extracts data from a PyObject instance to a generic pointer and returns a type hint if it could be de...</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00224">python_wrapper_common.c:224</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a7055f797416a2fd833c882c24e6e88a6"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">remmina_public_get_server_port_wrapper</a></div><div class="ttdeci">static PyObject * remmina_public_get_server_port_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01022">python_wrapper_remmina.c:1022</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a5183cb11a04689752672de10bf5d0c69"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">remmina_protocol_widget_get_profile_remote_width_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_widget_get_profile_remote_width_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01077">python_wrapper_remmina.c:1077</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a7055f797416a2fd833c882c24e6e88a6"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a7055f797416a2fd833c882c24e6e88a6">remmina_public_get_server_port_wrapper</a></div><div class="ttdeci">static PyObject * remmina_public_get_server_port_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01023">python_wrapper_remmina.c:1023</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a5183cb11a04689752672de10bf5d0c69"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a5183cb11a04689752672de10bf5d0c69">remmina_protocol_widget_get_profile_remote_width_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_widget_get_profile_remote_width_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01078">python_wrapper_remmina.c:1078</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_widget_html"><div class="ttname"><a href="struct_py_remmina_protocol_widget.html">PyRemminaProtocolWidget</a></div><div class="ttdoc">The Python abstraction of the protocol widget struct. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00114">python_wrapper_common.h:114</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_ad9e2034841e5b0a10291ad015e4bfc46"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad9e2034841e5b0a10291ad015e4bfc46">python_wrapper_screenshot_data_new</a></div><div class="ttdeci">PyRemminaPluginScreenshotData * python_wrapper_screenshot_data_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00474">python_wrapper_remmina.c:474</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1bbf968b63ccd08024ebb527e6d6c406"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1bbf968b63ccd08024ebb527e6d6c406">_RemminaPluginService::widget_pool_register</a></div><div class="ttdeci">void(* widget_pool_register)(GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00300">plugin.h:300</a></div></div>
@@ -249,36 +250,36 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
<div class="ttc" id="python__wrapper__remmina_8c_html_acce1147b25b7cf301301be31b94f51d8"><div class="ttname"><a href="python__wrapper__remmina_8c.html#acce1147b25b7cf301301be31b94f51d8">python_wrapper_generic_to_int</a></div><div class="ttdeci">static PyObject * python_wrapper_generic_to_int(PyGeneric *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00555">python_wrapper_remmina.c:555</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_aab44850c13a7e5e20a02603ae173d53d"><div class="ttname"><a href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">_RemminaProtocolFeature::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00076">types.h:76</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00050">types.h:50</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_aae512fe54f07ab0c9507712469a0043f"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f">python_wrapper_get_mainwindow_wrapper</a></div><div class="ttdeci">static PyObject * python_wrapper_get_mainwindow_wrapper(PyObject *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01143">python_wrapper_remmina.c:1143</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00104">types.h:104</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_aae512fe54f07ab0c9507712469a0043f"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aae512fe54f07ab0c9507712469a0043f">python_wrapper_get_mainwindow_wrapper</a></div><div class="ttdeci">static PyObject * python_wrapper_get_mainwindow_wrapper(PyObject *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01144">python_wrapper_remmina.c:1144</a></div></div>
<div class="ttc" id="python__wrapper__tool_8h_html"><div class="ttname"><a href="python__wrapper__tool_8h.html">python_wrapper_tool.h</a></div></div>
<div class="ttc" id="python__wrapper__entry_8c_html_a6ae71beff603a0d842479bc98bc26d50"><div class="ttname"><a href="python__wrapper__entry_8c.html#a6ae71beff603a0d842479bc98bc26d50">python_wrapper_entry_init</a></div><div class="ttdeci">void python_wrapper_entry_init(void)</div><div class="ttdoc">Initializes the Python plugin specialisation for entry plugins. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__entry_8c_source.html#l00055">python_wrapper_entry.c:55</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_a7216165b5783d7e8e0a7044ae52b5d9a"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a7216165b5783d7e8e0a7044ae52b5d9a">python_screenshot_data_new</a></div><div class="ttdeci">PyObject * python_screenshot_data_new(PyTypeObject *type, PyObject *kws, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00437">python_wrapper_remmina.c:437</a></div></div>
<div class="ttc" id="struct_py_plugin_html_a0ad50bbd41dc27f511d6734b256a37ac"><div class="ttname"><a href="struct_py_plugin.html#a0ad50bbd41dc27f511d6734b256a37ac">PyPlugin::pref_plugin</a></div><div class="ttdeci">RemminaPrefPlugin * pref_plugin</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00133">python_wrapper_common.h:133</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a53b98f2a3ae805f5b1cbe72f0f2af62a"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a53b98f2a3ae805f5b1cbe72f0f2af62a">python_wrapper_module_init</a></div><div class="ttdeci">void python_wrapper_module_init(void)</div><div class="ttdoc">Initializes all globals and registers the &amp;#39;remmina&amp;#39; module in the Python engine. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00719">python_wrapper_remmina.c:719</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a53b98f2a3ae805f5b1cbe72f0f2af62a"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a53b98f2a3ae805f5b1cbe72f0f2af62a">python_wrapper_module_init</a></div><div class="ttdeci">void python_wrapper_module_init(void)</div><div class="ttdoc">Initializes all globals and registers the &amp;#39;remmina&amp;#39; module in the Python engine. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00720">python_wrapper_remmina.c:720</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_af4a328d20d3b422cf15214277cb7a643"><div class="ttname"><a href="python__wrapper__remmina_8c.html#af4a328d20d3b422cf15214277cb7a643">python_protocol_feature_type</a></div><div class="ttdeci">static PyTypeObject python_protocol_feature_type</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00395">python_wrapper_remmina.c:395</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00069">types.h:69</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a094b4cbf549e774fc03e988c8fb904e7"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">remmina_pref_keymap_get_keyval_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_keymap_get_keyval_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00939">python_wrapper_remmina.c:939</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a094b4cbf549e774fc03e988c8fb904e7"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a094b4cbf549e774fc03e988c8fb904e7">remmina_pref_keymap_get_keyval_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_keymap_get_keyval_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00940">python_wrapper_remmina.c:940</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_setting_html_ad65959226c313319c2e3bdfcee472b2b"><div class="ttname"><a href="struct_py_remmina_protocol_setting.html#ad65959226c313319c2e3bdfcee472b2b">PyRemminaProtocolSetting::name</a></div><div class="ttdeci">gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00228">python_wrapper_remmina.c:228</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a923e3fd23d17372bec0ff951a46b7660"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">remmina_widget_pool_register_wrapper</a></div><div class="ttdeci">static PyObject * remmina_widget_pool_register_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00991">python_wrapper_remmina.c:991</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00131">types.h:131</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a923e3fd23d17372bec0ff951a46b7660"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a923e3fd23d17372bec0ff951a46b7660">remmina_widget_pool_register_wrapper</a></div><div class="ttdeci">static PyObject * remmina_widget_pool_register_wrapper(PyObject *self, PyObject *args, PyObject *kwargs)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00992">python_wrapper_remmina.c:992</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00132">types.h:132</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_a0119afae8dc1bb68e04de3f5d63bb0da"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a0119afae8dc1bb68e04de3f5d63bb0da">python_wrapper_generic_dealloc</a></div><div class="ttdeci">static void python_wrapper_generic_dealloc(PyObject *self)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00490">python_wrapper_remmina.c:490</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_ae9f29b23aa0a87076a2f2d15a0397f5c"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c">python_wrapper_log_print_wrapper</a></div><div class="ttdeci">static PyObject * python_wrapper_log_print_wrapper(PyObject *self, PyObject *arg)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00963">python_wrapper_remmina.c:963</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_ae9f29b23aa0a87076a2f2d15a0397f5c"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ae9f29b23aa0a87076a2f2d15a0397f5c">python_wrapper_log_print_wrapper</a></div><div class="ttdeci">static PyObject * python_wrapper_log_print_wrapper(PyObject *self, PyObject *arg)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00964">python_wrapper_remmina.c:964</a></div></div>
<div class="ttc" id="python__wrapper__file_8h_html"><div class="ttname"><a href="python__wrapper__file_8h.html">python_wrapper_file.h</a></div><div class="ttdoc">Contains the specialisation of RemminaPluginFile plugins in Python. </div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_a20df87db3768444838a5bc62383ba0e5"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5">python_wrapper_debug_wrapper</a></div><div class="ttdeci">static PyObject * python_wrapper_debug_wrapper(PyObject *self, PyObject *msg)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00977">python_wrapper_remmina.c:977</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_aad6c19845e75ab365c98585edfdda43f"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f">remmina_masterthread_exec_is_main_thread_wrapper</a></div><div class="ttdeci">static PyObject * remmina_masterthread_exec_is_main_thread_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01046">python_wrapper_remmina.c:1046</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_a20df87db3768444838a5bc62383ba0e5"><div class="ttname"><a href="python__wrapper__remmina_8c.html#a20df87db3768444838a5bc62383ba0e5">python_wrapper_debug_wrapper</a></div><div class="ttdeci">static PyObject * python_wrapper_debug_wrapper(PyObject *self, PyObject *msg)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00978">python_wrapper_remmina.c:978</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_aad6c19845e75ab365c98585edfdda43f"><div class="ttname"><a href="python__wrapper__remmina_8c.html#aad6c19845e75ab365c98585edfdda43f">remmina_masterthread_exec_is_main_thread_wrapper</a></div><div class="ttdeci">static PyObject * remmina_masterthread_exec_is_main_thread_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01047">python_wrapper_remmina.c:1047</a></div></div>
<div class="ttc" id="struct_py_remmina_protocol_setting_html"><div class="ttname"><a href="struct_py_remmina_protocol_setting.html">PyRemminaProtocolSetting</a></div><div class="ttdoc">Adapter struct to handle Remmina protocol settings. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00224">python_wrapper_remmina.c:224</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ad0c0e810cad311a80cb73746bc299895"><div class="ttname"><a href="struct___remmina_plugin_service.html#ad0c0e810cad311a80cb73746bc299895">_RemminaPluginService::file_new</a></div><div class="ttdeci">RemminaFile *(* file_new)(void)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00216">plugin.h:216</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a588f2c328c535384a0adaac027c4df72"><div class="ttname"><a href="struct___remmina_plugin_service.html#a588f2c328c535384a0adaac027c4df72">_RemminaPluginService::_remmina_debug</a></div><div class="ttdeci">void(* _remmina_debug)(const gchar *func, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00237">plugin.h:237</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_abf39b9982da287d8768a66e472965519"><div class="ttname"><a href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">remmina_pref_get_scale_quality_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_scale_quality_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00903">python_wrapper_remmina.c:903</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a7a5b063deb126422c461203c074a3dc4"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">_RemminaProtocolSetting::label</a></div><div class="ttdeci">const gchar * label</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_abf39b9982da287d8768a66e472965519"><div class="ttname"><a href="python__wrapper__remmina_8c.html#abf39b9982da287d8768a66e472965519">remmina_pref_get_scale_quality_wrapper</a></div><div class="ttdeci">static PyObject * remmina_pref_get_scale_quality_wrapper(PyObject *self, PyObject *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00904">python_wrapper_remmina.c:904</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a7a5b063deb126422c461203c074a3dc4"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">_RemminaProtocolSetting::label</a></div><div class="ttdeci">const gchar * label</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00120">types.h:120</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a9abdee80580cddd54405d0577e459c2c"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a9abdee80580cddd54405d0577e459c2c">_RemminaProtocolFeature::opt3_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt3_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00080">types.h:80</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html_a3f09b29bb3b0c044780d56a8b1a51582"><div class="ttname"><a href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">_RemminaPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00058">plugin.h:58</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_acbfd9c330a98034bf5ea3253661c939e"><div class="ttname"><a href="python__wrapper__remmina_8c.html#acbfd9c330a98034bf5ea3253661c939e">python_protocol_setting_init</a></div><div class="ttdeci">static int python_protocol_setting_init(PyRemminaProtocolSetting *self, PyObject *args, PyObject *kwargs)</div><div class="ttdoc">Constructor of the remmina.Setting Python type. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00277">python_wrapper_remmina.c:277</a></div></div>
<div class="ttc" id="struct_py_plugin_html_a1550876f14c98c48981015b8399a095b"><div class="ttname"><a href="struct_py_plugin.html#a1550876f14c98c48981015b8399a095b">PyPlugin::entry_plugin</a></div><div class="ttdeci">RemminaEntryPlugin * entry_plugin</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00132">python_wrapper_common.h:132</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8c_html_acc0fa393340bf1c43775866389e28c3e"><div class="ttname"><a href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e">remmina_protocol_plugin_signal_connection_closed_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_plugin_signal_connection_closed_wrapper(PyObject *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01157">python_wrapper_remmina.c:1157</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8c_html_acc0fa393340bf1c43775866389e28c3e"><div class="ttname"><a href="python__wrapper__remmina_8c.html#acc0fa393340bf1c43775866389e28c3e">remmina_protocol_plugin_signal_connection_closed_wrapper</a></div><div class="ttdeci">static PyObject * remmina_protocol_plugin_signal_connection_closed_wrapper(PyObject *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01158">python_wrapper_remmina.c:1158</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
<div class="ttc" id="python__wrapper__protocol_8c_html_aaa90f5541895f5c3dedaa16c15d80de7"><div class="ttname"><a href="python__wrapper__protocol_8c.html#aaa90f5541895f5c3dedaa16c15d80de7">python_wrapper_create_protocol_plugin</a></div><div class="ttdeci">RemminaPlugin * python_wrapper_create_protocol_plugin(PyPlugin *plugin)</div><div class="ttdoc">Creates a new instance of the RemminaPluginProtocol, initializes its members and references the wrapp...</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol_8c_source.html#l00205">python_wrapper_protocol.c:205</a></div></div>
<div class="ttc" id="struct_py_plugin_html_a3b78180c53db5f3547a8c276a815375a"><div class="ttname"><a href="struct_py_plugin.html#a3b78180c53db5f3547a8c276a815375a">PyPlugin::instance</a></div><div class="ttdeci">PyObject * instance</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00136">python_wrapper_common.h:136</a></div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/public/python__wrapper__remmina_8h.html b/public/python__wrapper__remmina_8h.html
index aaff3725b..12057fd47 100644
--- a/public/python__wrapper__remmina_8h.html
+++ b/public/python__wrapper__remmina_8h.html
@@ -162,7 +162,7 @@ Functions</h2></td></tr>
<p>Initializes the 'remmina' module in the Python engine.</p>
<p>This </p>
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00719">719</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l00720">720</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -201,7 +201,7 @@ Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01108">1108</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01109">1109</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
@@ -240,7 +240,7 @@ Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01092">1092</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="python__wrapper__remmina_8c_source.html#l01093">1093</a> of file <a class="el" href="python__wrapper__remmina_8c_source.html">python_wrapper_remmina.c</a>.</p>
</div>
</div>
diff --git a/public/python__wrapper__remmina_8h_source.html b/public/python__wrapper__remmina_8h_source.html
index 1a7752a04..bea1135df 100644
--- a/public/python__wrapper__remmina_8h_source.html
+++ b/public/python__wrapper__remmina_8h_source.html
@@ -87,14 +87,14 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8h_source.htm
</div><!--header-->
<div class="contents">
<a href="python__wrapper__remmina_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2014-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// I N C L U D E S</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__common_8h.html">python_wrapper_common.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="python__wrapper__protocol__widget_8h.html">python_wrapper_protocol_widget.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// A P I</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8h.html#a3c64ffe58241dbb27605dee459e84b66">python_wrapper_module_init</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<a class="code" href="struct_py_plugin.html">PyPlugin</a>* <a class="code" href="python__wrapper__remmina_8h.html#aa82a4028546be1fc4f73499cb65e7a0d">python_wrapper_module_get_plugin</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8h.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a>(<a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a>* dest, PyObject* setting);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keywordtype">void</span> <a class="code" href="python__wrapper__remmina_8h.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a>(<a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* dest, PyObject* feature);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;G_END_DECLS</div><div class="ttc" id="struct_py_plugin_html"><div class="ttname"><a href="struct_py_plugin.html">PyPlugin</a></div><div class="ttdoc">Maps an instance of a Python plugin to a Remmina one. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00126">python_wrapper_common.h:126</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8h_html_ad9cee26b804b78c89cd56e59d71b6250"><div class="ttname"><a href="python__wrapper__remmina_8h.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a></div><div class="ttdeci">void python_wrapper_to_protocol_feature(RemminaProtocolFeature *dest, PyObject *feature)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolFeature. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01108">python_wrapper_remmina.c:1108</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8h_html_ad9cee26b804b78c89cd56e59d71b6250"><div class="ttname"><a href="python__wrapper__remmina_8h.html#ad9cee26b804b78c89cd56e59d71b6250">python_wrapper_to_protocol_feature</a></div><div class="ttdeci">void python_wrapper_to_protocol_feature(RemminaProtocolFeature *dest, PyObject *feature)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolFeature. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01109">python_wrapper_remmina.c:1109</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8h_html"><div class="ttname"><a href="python__wrapper__protocol__widget_8h.html">python_wrapper_protocol_widget.h</a></div><div class="ttdoc">Contains the implementation of the widget handling used from the protocol plugin. ...</div></div>
<div class="ttc" id="python__wrapper__common_8h_html"><div class="ttname"><a href="python__wrapper__common_8h.html">python_wrapper_common.h</a></div><div class="ttdoc">Contains functions and constants that are commonly used throughout the Python plugin implementation...</div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8h_html_a0029840116ce2b2c4d7870d202ce6459"><div class="ttname"><a href="python__wrapper__remmina_8h.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a></div><div class="ttdeci">void python_wrapper_to_protocol_setting(RemminaProtocolSetting *dest, PyObject *setting)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolSetting. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01092">python_wrapper_remmina.c:1092</a></div></div>
-<div class="ttc" id="python__wrapper__remmina_8h_html_a3c64ffe58241dbb27605dee459e84b66"><div class="ttname"><a href="python__wrapper__remmina_8h.html#a3c64ffe58241dbb27605dee459e84b66">python_wrapper_module_init</a></div><div class="ttdeci">G_BEGIN_DECLS void python_wrapper_module_init(void)</div><div class="ttdoc">Initializes the &amp;#39;remmina&amp;#39; module in the Python engine. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00719">python_wrapper_remmina.c:719</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8h_html_a0029840116ce2b2c4d7870d202ce6459"><div class="ttname"><a href="python__wrapper__remmina_8h.html#a0029840116ce2b2c4d7870d202ce6459">python_wrapper_to_protocol_setting</a></div><div class="ttdeci">void python_wrapper_to_protocol_setting(RemminaProtocolSetting *dest, PyObject *setting)</div><div class="ttdoc">Converts the PyObject to RemminaProtocolSetting. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l01093">python_wrapper_remmina.c:1093</a></div></div>
+<div class="ttc" id="python__wrapper__remmina_8h_html_a3c64ffe58241dbb27605dee459e84b66"><div class="ttname"><a href="python__wrapper__remmina_8h.html#a3c64ffe58241dbb27605dee459e84b66">python_wrapper_module_init</a></div><div class="ttdeci">G_BEGIN_DECLS void python_wrapper_module_init(void)</div><div class="ttdoc">Initializes the &amp;#39;remmina&amp;#39; module in the Python engine. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00720">python_wrapper_remmina.c:720</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8h_html_aa82a4028546be1fc4f73499cb65e7a0d"><div class="ttname"><a href="python__wrapper__remmina_8h.html#aa82a4028546be1fc4f73499cb65e7a0d">python_wrapper_module_get_plugin</a></div><div class="ttdeci">PyPlugin * python_wrapper_module_get_plugin(RemminaProtocolWidget *gp)</div><div class="ttdoc">Returns a pointer to the Python instance, mapped to the RemminaProtocolWidget or null if not found...</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/public/rcw_8c_source.html b/public/rcw_8c_source.html
index 3cda9ec01..0822ce285 100644
--- a/public/rcw_8c_source.html
+++ b/public/rcw_8c_source.html
@@ -121,7 +121,7 @@ $(document).ready(function(){initNavTree('rcw_8c_source.html','');});
<div class="ttc" id="remmina__protocol__widget_8c_html_aaf355ea7103fc57a4cbc7b815cde2995"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a></div><div class="ttdeci">gint remmina_protocol_widget_get_width(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01389">remmina_protocol_widget.c:1389</a></div></div>
<div class="ttc" id="rcw_8c_html_acb1b2ab629603837e08f8d8de542316d"><div class="ttname"><a href="rcw_8c.html#acb1b2ab629603837e08f8d8de542316d">rcw_hostkey_func</a></div><div class="ttdeci">static gboolean rcw_hostkey_func(RemminaProtocolWidget *gp, guint keyval, gboolean release)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04053">rcw.c:4053</a></div></div>
<div class="ttc" id="remmina__scrolled__viewport_8c_html_a0ba56f429a9c1ec05b093f5f78be692c"><div class="ttname"><a href="remmina__scrolled__viewport_8c.html#a0ba56f429a9c1ec05b093f5f78be692c">remmina_scrolled_viewport_remove_motion</a></div><div class="ttdeci">void remmina_scrolled_viewport_remove_motion(RemminaScrolledViewport *gsv)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__scrolled__viewport_8c_source.html#l00190">remmina_scrolled_viewport.c:190</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00145">types.h:145</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ab4c6435ef92e34a94270069ce1861907"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ab4c6435ef92e34a94270069ce1861907">remmina_protocol_widget_get_profile_remote_width</a></div><div class="ttdeci">gint remmina_protocol_widget_get_profile_remote_width(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01360">remmina_protocol_widget.c:1360</a></div></div>
<div class="ttc" id="rcw_8c_html_ab1f5606917a73b7048b748ac33668523"><div class="ttname"><a href="rcw_8c.html#ab1f5606917a73b7048b748ac33668523">rcw_toolbar_preferences</a></div><div class="ttdeci">static void rcw_toolbar_preferences(GtkToolItem *toggle, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01895">rcw.c:1895</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a6ae707cecd1f6660d8e2168d7422b797"><div class="ttname"><a href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">_RemminaPref::hostkey</a></div><div class="ttdeci">guint hostkey</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00174">remmina_pref.h:174</a></div></div>
@@ -240,7 +240,7 @@ $(document).ready(function(){initNavTree('rcw_8c_source.html','');});
<div class="ttc" id="struct___remmina_pref_html_a4f2cf3433d4f689fbe8b250dcfb8148d"><div class="ttname"><a href="struct___remmina_pref.html#a4f2cf3433d4f689fbe8b250dcfb8148d">_RemminaPref::shortcutkey_multimon</a></div><div class="ttdeci">guint shortcutkey_multimon</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00181">remmina_pref.h:181</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4caf8d8f829279fba122163d961608a4adb8aecbb1eda207dd5e18e665053ac27"><div class="ttname"><a href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4adb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00078">remmina_pref.h:78</a></div></div>
<div class="ttc" id="rcw_8c_html_a73532ae8f8fa05711035bc3d4c82ac2a"><div class="ttname"><a href="rcw_8c.html#a73532ae8f8fa05711035bc3d4c82ac2a">rcw_ftb_drag_begin</a></div><div class="ttdeci">static void rcw_ftb_drag_begin(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03961">rcw.c:3961</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a3df98a686c4e2703455c1a786d3f1f5c"><div class="ttname"><a href="struct___remmina_pref.html#a3df98a686c4e2703455c1a786d3f1f5c">_RemminaPref::screenshot_path</a></div><div class="ttdeci">const gchar * screenshot_path</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00137">remmina_pref.h:137</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_aa0f78eb9b36ba248c2e368684903ae44"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">_RemminaPluginScreenshotData::bytesPerPixel</a></div><div class="ttdeci">int bytesPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00086">types.h:86</a></div></div>
<div class="ttc" id="remmina__ext__exec_8h_html"><div class="ttname"><a href="remmina__ext__exec_8h.html">remmina_ext_exec.h</a></div></div>
@@ -265,7 +265,7 @@ $(document).ready(function(){initNavTree('rcw_8c_source.html','');});
<div class="ttc" id="rcw_8c_html_adf9a57dc0cdd6261bef9a92df145c80c"><div class="ttname"><a href="rcw_8c.html#adf9a57dc0cdd6261bef9a92df145c80c">rcw_on_enter_notify_event</a></div><div class="ttdeci">static gboolean rcw_on_enter_notify_event(GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02809">rcw.c:2809</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_ab3c15094a16418c5951c5382c8a44190"><div class="ttname"><a href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">_RemminaProtocolFeature::opt3</a></div><div class="ttdeci">gpointer opt3</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00077">types.h:77</a></div></div>
<div class="ttc" id="remmina__applet__menu_8c_html_af2baabd1750dd1a95a0b36e601d99cfe"><div class="ttname"><a href="remmina__applet__menu_8c.html#af2baabd1750dd1a95a0b36e601d99cfe">remmina_applet_menu_set_hide_count</a></div><div class="ttdeci">void remmina_applet_menu_set_hide_count(RemminaAppletMenu *menu, gboolean hide_count)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__applet__menu_8c_source.html#l00236">remmina_applet_menu.c:236</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a1668951fd7067f2c405e001836855080"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a></div><div class="ttdeci">gboolean remmina_plugin_manager_query_feature_by_type(RemminaPluginType ptype, const gchar *name, RemminaProtocolFeatureType ftype)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00615">remmina_plugin_manager.c:615</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a1668951fd7067f2c405e001836855080"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a></div><div class="ttdeci">gboolean remmina_plugin_manager_query_feature_by_type(RemminaPluginType ptype, const gchar *name, RemminaProtocolFeatureType ftype)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00617">remmina_plugin_manager.c:617</a></div></div>
<div class="ttc" id="rcw_8c_html_a0aef50fe641f959f5715ab7e01bfd23d"><div class="ttname"><a href="rcw_8c.html#a0aef50fe641f959f5715ab7e01bfd23d">rcw_on_page_removed</a></div><div class="ttdeci">static void rcw_on_page_removed(GtkNotebook *notebook, GtkWidget *child, guint page_num, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03673">rcw.c:3673</a></div></div>
<div class="ttc" id="rcw_8c_html_a3f9d79b58064438a513d47b4ff690b73"><div class="ttname"><a href="rcw_8c.html#a3f9d79b58064438a513d47b4ff690b73">rcw_new</a></div><div class="ttdeci">static RemminaConnectionWindow * rcw_new(gboolean fullscreen, int full_screen_target_monitor)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03380">rcw.c:3380</a></div></div>
<div class="ttc" id="rcw_8c_html_a27f545a9630a481f4df747478cd227fb"><div class="ttname"><a href="rcw_8c.html#a27f545a9630a481f4df747478cd227fb">rcw_on_leave_notify_event</a></div><div class="ttdeci">static gboolean rcw_on_leave_notify_event(GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02822">rcw.c:2822</a></div></div>
@@ -337,7 +337,7 @@ $(document).ready(function(){initNavTree('rcw_8c_source.html','');});
<div class="ttc" id="rcw_8c_html_a2b1c419af147227fab3ad9a3ce82f3af"><div class="ttname"><a href="rcw_8c.html#a2b1c419af147227fab3ad9a3ce82f3af">rcw_toolbar_open_main</a></div><div class="ttdeci">static void rcw_toolbar_open_main(GtkToolItem *toggle, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01748">rcw.c:1748</a></div></div>
<div class="ttc" id="rcw_8c_html_a1fce938658aee966b1ccffb4a0ab4cff"><div class="ttname"><a href="rcw_8c.html#a1fce938658aee966b1ccffb4a0ab4cff">rcw_create_notebook</a></div><div class="ttdeci">static GtkNotebook * rcw_create_notebook(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03746">rcw.c:3746</a></div></div>
<div class="ttc" id="rcw_8c_html_a89a2fc0dfcdc5e260cc3af191a7115ee"><div class="ttname"><a href="rcw_8c.html#a89a2fc0dfcdc5e260cc3af191a7115ee">rcw_toolbar_disconnect</a></div><div class="ttdeci">static void rcw_toolbar_disconnect(GtkToolItem *toggle, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02286">rcw.c:2286</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
<div class="ttc" id="struct___remmina_connection_window_html_a05faadfc5f0372cca2f4552b1882813c"><div class="ttname"><a href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">_RemminaConnectionWindow::priv</a></div><div class="ttdeci">RemminaConnectionWindowPriv * priv</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8h_source.html#l00056">rcw.h:56</a></div></div>
<div class="ttc" id="rcw_8h_html"><div class="ttname"><a href="rcw_8h.html">rcw.h</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a2830f756dfc3d735b57b0c5753c429e3"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget_is_closed</a></div><div class="ttdeci">gboolean remmina_protocol_widget_is_closed(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01470">remmina_protocol_widget.c:1470</a></div></div>
@@ -346,7 +346,7 @@ $(document).ready(function(){initNavTree('rcw_8c_source.html','');});
<div class="ttc" id="rcw_8c_html_aadf6b28ed1ba344b9c93bfb7077030d3a6fafaf979c15a6300f4533321f1890d7"><div class="ttname"><a href="rcw_8c.html#aadf6b28ed1ba344b9c93bfb7077030d3a6fafaf979c15a6300f4533321f1890d7">GTKSOCKET_NOT_AVAIL_RESPONSE_OPEN_BROWSER</a></div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04466">rcw.c:4466</a></div></div>
<div class="ttc" id="rcw_8c_html_a29701ae152ba15f6d8921f395174d2df"><div class="ttname"><a href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a></div><div class="ttdeci">RemminaPref remmina_pref</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00079">rcw.c:79</a></div></div>
<div class="ttc" id="struct___remmina_applet_menu_item_html_abfc6c501c400171718ddf4a520154e8c"><div class="ttname"><a href="struct___remmina_applet_menu_item.html#abfc6c501c400171718ddf4a520154e8c">_RemminaAppletMenuItem::name</a></div><div class="ttdeci">gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="remmina__applet__menu__item_8h_source.html#l00058">remmina_applet_menu_item.h:58</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
<div class="ttc" id="rcw_8c_html_a10b9b689406b4b3071ace2b7c8562aa7"><div class="ttname"><a href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a></div><div class="ttdeci">static void rcw_floating_toolbar_show(RemminaConnectionWindow *cnnwin, gboolean show)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00879">rcw.c:879</a></div></div>
<div class="ttc" id="rcw_8h_html_a2e3ebdd3e3450d651445ab54a7113f8b"><div class="ttname"><a href="rcw_8h.html#a2e3ebdd3e3450d651445ab54a7113f8b">rcw_get_type</a></div><div class="ttdeci">GType rcw_get_type(void) G_GNUC_CONST</div></div>
<div class="ttc" id="remmina__applet__menu__item_8h_html_a75e42156d38612a96ae48899316b4727a9056a1ad9722374064fe166aa77e69a3"><div class="ttname"><a href="remmina__applet__menu__item_8h.html#a75e42156d38612a96ae48899316b4727a9056a1ad9722374064fe166aa77e69a3">REMMINA_APPLET_MENU_ITEM_NEW</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__applet__menu__item_8h_source.html#l00050">remmina_applet_menu_item.h:50</a></div></div>
diff --git a/public/rdp__channels_8c_source.html b/public/rdp__channels_8c_source.html
index 5a76c7a33..0973b7f07 100644
--- a/public/rdp__channels_8c_source.html
+++ b/public/rdp__channels_8c_source.html
@@ -87,7 +87,7 @@ $(document).ready(function(){initNavTree('rdp__channels_8c_source.html','');});
</div><!--header-->
<div class="contents">
<a href="rdp__channels_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2012 Jean-Louis Dupond</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__plugin_8h.html">rdp_plugin.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__cliprdr_8h.html">rdp_cliprdr.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__channels_8h.html">rdp_channels.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__event_8h.html">rdp_event.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &lt;freerdp/freerdp.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;freerdp/channels/channels.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;freerdp/client/cliprdr.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;freerdp/gdi/gfx.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="rdp__channels_8h.html#a81be0bdb718bc47b5296698a7b47ce20"> 46</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">remmina_rdp_OnChannelConnectedEventHandler</a>(<span class="keywordtype">void</span>* context, ChannelConnectedEventArgs* e)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="structrf__context.html">rfContext</a>* rfi = (<a class="code" href="structrf__context.html">rfContext</a>*)context;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(e-&gt;name, RDPEI_DVC_CHANNEL_NAME) == 0) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; g_print(<span class="stringliteral">&quot;Unimplemented: channel %s connected but we can’t use it\n&quot;</span>, e-&gt;name);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// xfc-&gt;rdpei = (RdpeiClientContext*) e-&gt;pInterface;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(e-&gt;name, TSMF_DVC_CHANNEL_NAME) == 0) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; g_print(<span class="stringliteral">&quot;Unimplemented: channel %s connected but we can’t use it\n&quot;</span>, e-&gt;name);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// xf_tsmf_init(xfc, (TsmfClientContext*) e-&gt;pInterface);</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(e-&gt;name, RDPGFX_DVC_CHANNEL_NAME) == 0) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SoftwareGdi)) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#ab5ffc4d8ba9d3d8a298414dc8e4efd2a">rdpgfxchan</a> = TRUE;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; gdi_graphics_pipeline_init(rfi-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>.gdi, (RdpgfxClientContext*) e-&gt;pInterface);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; g_print(<span class="stringliteral">&quot;Unimplemented: channel %s connected but libfreerdp is in HardwareGdi mode\n&quot;</span>, e-&gt;name);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(e-&gt;name, RAIL_SVC_CHANNEL_NAME) == 0) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; g_print(<span class="stringliteral">&quot;Unimplemented: channel %s connected but we can’t use it\n&quot;</span>, e-&gt;name);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// xf_rail_init(xfc, (RailClientContext*) e-&gt;pInterface);</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(e-&gt;name, CLIPRDR_SVC_CHANNEL_NAME) == 0) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="rdp__cliprdr_8c.html#a2c900a8369c1081e3084f5b17efbe47d">remmina_rdp_cliprdr_init</a>( rfi, (CliprdrClientContext*)e-&gt;pInterface);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(e-&gt;name, ENCOMSP_SVC_CHANNEL_NAME) == 0) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; g_print(<span class="stringliteral">&quot;Unimplemented: channel %s connected but we can’t use it\n&quot;</span>, e-&gt;name);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// xf_encomsp_init(xfc, (EncomspClientContext*) e-&gt;pInterface);</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(e-&gt;name, DISP_DVC_CHANNEL_NAME) == 0) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// &quot;disp&quot; channel connected, save its context pointer</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a> = (DispClientContext*)e-&gt;pInterface;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// Notify rcw to unlock dynres capability</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="remmina__sftp__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a>-&gt;<a class="code" href="struct___remmina_plugin_service.html#aa129753441dbfb630cbdb92e447f1d1e">protocol_plugin_unlock_dynres</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Send monitor layout message here to ask for resize of remote desktop now</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a96c4689f6bc062482536038cb3b24e78">scale</a> == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a>) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="rdp__event_8c.html#ac7c8d626470553c1659312697811dbfe">remmina_rdp_event_send_delayed_monitor_layout</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Channel %s has been opened&quot;</span>, e-&gt;name);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="rdp__channels_8h.html#a2d82ea9a38463d03c07271a356ccaec2"> 86</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rdp__channels_8c.html#a2d82ea9a38463d03c07271a356ccaec2">remmina_rdp_OnChannelDisconnectedEventHandler</a>(<span class="keywordtype">void</span>* context, ChannelDisconnectedEventArgs* e)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="structrf__context.html">rfContext</a>* rfi = (<a class="code" href="structrf__context.html">rfContext</a>*)context;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (strcmp(e-&gt;name, RDPGFX_DVC_CHANNEL_NAME) == 0) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SoftwareGdi))</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; gdi_graphics_pipeline_uninit(rfi-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>.gdi, (RdpgfxClientContext*) e-&gt;pInterface);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Channel %s has been closed&quot;</span>, e-&gt;name);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="ttc" id="structrf__context_html"><div class="ttname"><a href="structrf__context.html">rf_context</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00319">rdp_plugin.h:319</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00145">types.h:145</a></div></div>
<div class="ttc" id="rdp__cliprdr_8c_html_a2c900a8369c1081e3084f5b17efbe47d"><div class="ttname"><a href="rdp__cliprdr_8c.html#a2c900a8369c1081e3084f5b17efbe47d">remmina_rdp_cliprdr_init</a></div><div class="ttdeci">void remmina_rdp_cliprdr_init(rfContext *rfi, CliprdrClientContext *cliprdr)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__cliprdr_8c_source.html#l00958">rdp_cliprdr.c:958</a></div></div>
<div class="ttc" id="structrf__context_html_ab5ffc4d8ba9d3d8a298414dc8e4efd2a"><div class="ttname"><a href="structrf__context.html#ab5ffc4d8ba9d3d8a298414dc8e4efd2a">rf_context::rdpgfxchan</a></div><div class="ttdeci">gboolean rdpgfxchan</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00341">rdp_plugin.h:341</a></div></div>
<div class="ttc" id="structrf__context_html_a05f37c213b04dfb9ae9b38c12bcdf7e3"><div class="ttname"><a href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">rf_context::protocol_widget</a></div><div class="ttdeci">RemminaProtocolWidget * protocol_widget</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00323">rdp_plugin.h:323</a></div></div>
diff --git a/public/rdp__event_8c_source.html b/public/rdp__event_8c_source.html
index dc72ee1cc..fe1599104 100644
--- a/public/rdp__event_8c_source.html
+++ b/public/rdp__event_8c_source.html
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('rdp__event_8c_source.html','');});
<div class="ttc" id="structrf__context_html_a539feef609228a91c5e54d5da837bb7a"><div class="ttname"><a href="structrf__context.html#a539feef609228a91c5e54d5da837bb7a">rf_context::event_pipe</a></div><div class="ttdeci">gint event_pipe[2]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00381">rdp_plugin.h:381</a></div></div>
<div class="ttc" id="structrf__context_html_a8a310c8fad5daf6b9f4d8f854b04a764"><div class="ttname"><a href="structrf__context.html#a8a310c8fad5daf6b9f4d8f854b04a764">rf_context::scale_y</a></div><div class="ttdeci">gdouble scale_y</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00359">rdp_plugin.h:359</a></div></div>
<div class="ttc" id="structrf__context_html"><div class="ttname"><a href="structrf__context.html">rf_context</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00319">rdp_plugin.h:319</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00145">types.h:145</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a393d4ec6673f6a9c2b71849c109facef"><div class="ttname"><a href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">remmina_rdp_event_on_unmap</a></div><div class="ttdeci">gboolean remmina_rdp_event_on_unmap(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00074">rdp_event.c:74</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html"><div class="ttname"><a href="structremmina__plugin__rdp__event.html">remmina_plugin_rdp_event</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00190">rdp_plugin.h:190</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
@@ -149,7 +149,7 @@ $(document).ready(function(){initNavTree('rdp__event_8c_source.html','');});
<div class="ttc" id="rdp__event_8c_html_a6e3d726d9c6e27d25538c8ae665e8b58"><div class="ttname"><a href="rdp__event_8c.html#a6e3d726d9c6e27d25538c8ae665e8b58">remmina_rdp_event_on_focus_in</a></div><div class="ttdeci">static gboolean remmina_rdp_event_on_focus_in(GtkWidget *widget, GdkEventKey *event, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00104">rdp_event.c:104</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html_a84797e0cdf4484432740a8946325f126"><div class="ttname"><a href="structremmina__plugin__rdp__event.html#a84797e0cdf4484432740a8946325f126">remmina_plugin_rdp_event::type</a></div><div class="ttdeci">RemminaPluginRdpEventType type</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00191">rdp_plugin.h:191</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7a8c8701fc5ef4ff1196c8d088dd146a5b"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a8c8701fc5ef4ff1196c8d088dd146a5b">REMMINA_RDP_EVENT_TYPE_MOUSE</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00182">rdp_plugin.h:182</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a2ff2e46de1ad42c9aa8f792d629e0a89"><div class="ttname"><a href="rdp__event_8c.html#a2ff2e46de1ad42c9aa8f792d629e0a89">remmina_rdp_event_update_regions</a></div><div class="ttdeci">void remmina_rdp_event_update_regions(RemminaProtocolWidget *gp, RemminaPluginRdpUiObject *ui)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00281">rdp_event.c:281</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a35376ff50915de1c14285e6326bc943e"><div class="ttname"><a href="rdp__event_8c.html#a35376ff50915de1c14285e6326bc943e">remmina_rdp_event_delayed_monitor_layout</a></div><div class="ttdeci">static gboolean remmina_rdp_event_delayed_monitor_layout(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00392">rdp_event.c:392</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7"><div class="ttname"><a href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7">REMMINA_RDP_UI_RECONNECT_PROGRESS</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00234">rdp_plugin.h:234</a></div></div>
diff --git a/public/rdp__plugin_8c.html b/public/rdp__plugin_8c.html
index 9ee0d3a6d..64afc5e8c 100644
--- a/public/rdp__plugin_8c.html
+++ b/public/rdp__plugin_8c.html
@@ -264,7 +264,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02972">2972</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l03004">3004</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -292,7 +292,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02335">2335</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02366">2366</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -320,7 +320,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01314">1314</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01315">1315</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -340,7 +340,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02992">2992</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l03024">3024</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -390,7 +390,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00771">771</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00772">772</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -428,7 +428,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02524">2524</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02555">2555</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -456,7 +456,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02476">2476</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02507">2507</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -494,7 +494,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00201">201</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00202">202</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -538,7 +538,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00122">122</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00123">123</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -576,7 +576,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01075">1075</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01076">1076</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -615,7 +615,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000015">Todo:</a></b></dt><dd>we should lock FreeRDP subthread to update rfi-&gt;primary_buffer, rfi-&gt;gdi and w/h, from here to memcpy, but… how ? </dd></dl>
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02590">2590</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02621">2621</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -665,7 +665,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00830">830</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00831">831</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -693,7 +693,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02392">2392</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02423">2423</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -737,7 +737,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02580">2580</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02611">2611</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -787,7 +787,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01048">1048</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01049">1049</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -817,7 +817,7 @@ Variables</h2></td></tr>
<p>Proxy support Proxy settings are hidden at the moment as an advanced feature</p>
<p>multitransport enables RDP8 UDP support</p>
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01342">1342</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01343">1343</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -845,7 +845,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00989">989</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00990">990</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -873,7 +873,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02365">2365</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02396">2396</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -901,7 +901,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02428">2428</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02459">2459</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -930,7 +930,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Do not use alpha as it's not used with the desktop CAIRO_FORMAT_ARGB32 See <a href="https://gitlab.com/Remmina/Remmina/-/issues/2456">https://gitlab.com/Remmina/Remmina/-/issues/2456</a></p>
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00696">696</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00697">697</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -958,7 +958,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00974">974</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00975">975</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -986,7 +986,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00671">671</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00672">672</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1024,7 +1024,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02518">2518</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02549">2549</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1052,7 +1052,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01231">1231</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01232">1232</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1090,7 +1090,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01241">1241</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01242">1242</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1143,7 +1143,7 @@ Variables</h2></td></tr>
<p>We pass NULL and we do not check for errors. The following code is how it is supposed to work.</p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000014">Todo:</a></b></dt><dd>Ask CUPS mailing list for help.</dd></dl>
<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> *model = cupsGetOption(<span class="stringliteral">&quot;printer-make-and-model&quot;</span>,</div><div class="line"> dest-&gt;num_options,</div><div class="line"> dest-&gt;options);</div></div><!-- fragment --><p>When remmina_rdp_find_prdriver doesn't return a DriverName it means that we don't want to share that printer</p>
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01150">1150</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l01151">1151</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1171,7 +1171,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00338">338</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00339">339</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1233,7 +1233,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00933">933</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00934">934</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1307,7 +1307,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00910">910</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00911">911</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1399,7 +1399,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00952">952</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00953">953</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1427,7 +1427,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00397">397</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00398">398</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1455,7 +1455,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00514">514</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00515">515</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1483,7 +1483,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00576">576</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00577">577</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1511,7 +1511,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00529">529</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00530">530</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1561,7 +1561,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00659">659</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00660">660</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1599,7 +1599,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00630">630</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00631">631</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1637,7 +1637,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00614">614</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00615">615</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1665,7 +1665,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00210">210</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00211">211</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1693,7 +1693,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02305">2305</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02336">2336</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1719,7 +1719,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of audio output:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • [sys:&lt;sys&gt;,][dev:&lt;dev&gt;,][format:&lt;format&gt;,][rate:&lt;rate&gt;,]\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; [channel:&lt;channel&gt;] Audio output\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • sys:pulse\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • format:1\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • sys:oss,dev:1,format:1\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • sys:alsa&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02745">2745</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02776">2776</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1744,7 +1744,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;2600 (Windows XP), 7601 (Windows Vista/7), 9600 (Windows 8 and newer)&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02725">2725</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02756">2756</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1769,7 +1769,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Used i.a. by terminal services in a smart card channel to distinguish client capabilities:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • &lt; 4034: Windows XP base smart card functions\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • 4034-7064: Windows Vista/7: SCardReadCache(),\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; SCardWriteCache(), SCardGetTransmitCount()\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • &gt;= 7065: Windows 8 and newer: SCardGetReaderIcon(),\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; SCardGetDeviceTypeId()&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02728">2728</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02759">2759</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1794,7 +1794,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> </div><div class="line"> <span class="stringliteral">&quot;99&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Automatic (32 bpp) (Server chooses its best format)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;66&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX AVC444 (32 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;65&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX AVC420 (32 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;64&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX RFX (32 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;63&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX RFX Progressive (32 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RemoteFX (32 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;32&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;True colour (32 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;24&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;True colour (24 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;16&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High colour (16 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;15&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High colour (15 bpp)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;8&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;256 colours (8 bpp)&quot;</span>),</div><div class="line"> NULL</div><div class="line">}</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02630">2630</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02661">2661</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1819,7 +1819,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Redirect directory &lt;path&gt; as named share &lt;name&gt;.\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • &lt;name&gt;,&lt;fullpath&gt;[;&lt;name&gt;,&lt;fullpath&gt;[;…]]\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • MyHome,/home/remminer\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • /home/remminer\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • MyHome,/home/remminer;SomePath,/path/to/somepath\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot;Hotplug support is enabled with:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • hotplug,*\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot;\n&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02783">2783</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02814">2814</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1843,7 +1843,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00113">113</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00114">114</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1867,7 +1867,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <span class="stringliteral">&quot;http&quot;</span>, <span class="stringliteral">&quot;HTTP&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;rpc&quot;</span>, <span class="stringliteral">&quot;RPC&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;auto&quot;</span>, <span class="stringliteral">&quot;Auto&quot;</span>,</div><div class="line"> NULL</div><div class="line">}</div></div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02705">2705</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02736">2736</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1891,7 +1891,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <span class="stringliteral">&quot;INFO&quot;</span>, <span class="stringliteral">&quot;INFO&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;FATAL&quot;</span>, <span class="stringliteral">&quot;FATAL&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;ERROR&quot;</span>, <span class="stringliteral">&quot;ERROR&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;WARN&quot;</span>, <span class="stringliteral">&quot;WARN&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;DEBUG&quot;</span>, <span class="stringliteral">&quot;DEBUG&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;TRACE&quot;</span>, <span class="stringliteral">&quot;TRACE&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;OFF&quot;</span>, <span class="stringliteral">&quot;OFF&quot;</span>,</div><div class="line"> NULL</div><div class="line">}</div></div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02648">2648</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02679">2679</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1916,7 +1916,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of audio input:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • [sys:&lt;sys&gt;,][dev:&lt;dev&gt;,][format:&lt;format&gt;,][rate:&lt;rate&gt;,]\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; [channel:&lt;channel&gt;] Audio input (microphone)\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • sys:pulse\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • format:1\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • sys:oss,dev:1,format:1\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • sys:alsa&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02736">2736</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02767">2767</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1941,7 +1941,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Comma-separated list of monitor IDs and desktop orientations:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • [&lt;id&gt;:&lt;orientation-in-degrees&gt;,]\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • 0,1,2,3\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • 0:270,1:90\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot;Orientations are specified in degrees, valid values are:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • 0 (landscape)\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • 90 (portrait)\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • 180 (landscape flipped)\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • 270 (portrait flipped)\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot;\n&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02771">2771</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02802">2802</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1966,7 +1966,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <span class="stringliteral">&quot;none&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;None&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;autodetect&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Auto-detect&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;modem&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Modem&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;broadband-low&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Low performance broadband&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;satellite&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Satellite&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;broadband-high&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High performance broadband&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;wan&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;WAN&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;lan&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;LAN&quot;</span>),</div><div class="line"> NULL</div><div class="line">}</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02672">2672</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02703">2703</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -1991,7 +1991,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Performance optimisations based on the network connection type:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot;Using auto-detection is advised.\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot;If “Auto-detect” fails, choose the most appropriate option in the list.\n&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02766">2766</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02797">2797</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2016,7 +2016,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Poor (fastest)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Medium&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Good&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;9&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Best (slowest)&quot;</span>),</div><div class="line"> NULL</div><div class="line">}</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02662">2662</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02693">2693</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2040,7 +2040,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02918">2918</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02950">2950</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2056,7 +2056,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00111">111</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00112">112</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2079,24 +2079,24 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, </div><div class="line"> <span class="stringliteral">&quot;RDP&quot;</span>, </div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - Remote Desktop Protocol&quot;</span>), </div><div class="line"> GETTEXT_PACKAGE, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, </div><div class="line"> <span class="stringliteral">&quot;org.remmina.Remmina-rdp-symbolic&quot;</span>, </div><div class="line"> <span class="stringliteral">&quot;org.remmina.Remmina-rdp-ssh-symbolic&quot;</span>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a>, </div><div class="line"> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a>, </div><div class="line"> <a class="code" href="rdp__event_8c.html#a09271b787fc086f05a8a6e7c3282d6aa">remmina_rdp_event_on_map</a>, </div><div class="line"> <a class="code" href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">remmina_rdp_event_on_unmap</a> </div><div class="line">}</div><div class="ttc" id="rdp__plugin_8c_html_a5f88cb338f10185c43bfc7d711dddee5"><div class="ttname"><a href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a></div><div class="ttdeci">static gboolean remmina_rdp_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02428">rdp_plugin.c:2428</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, </div><div class="line"> <span class="stringliteral">&quot;RDP&quot;</span>, </div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - Remote Desktop Protocol&quot;</span>), </div><div class="line"> GETTEXT_PACKAGE, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, </div><div class="line"> <span class="stringliteral">&quot;org.remmina.Remmina-rdp-symbolic&quot;</span>, </div><div class="line"> <span class="stringliteral">&quot;org.remmina.Remmina-rdp-ssh-symbolic&quot;</span>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a>, </div><div class="line"> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a>, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a>, </div><div class="line"> <a class="code" href="rdp__event_8c.html#a09271b787fc086f05a8a6e7c3282d6aa">remmina_rdp_event_on_map</a>, </div><div class="line"> <a class="code" href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">remmina_rdp_event_on_unmap</a> </div><div class="line">}</div><div class="ttc" id="rdp__plugin_8c_html_a5f88cb338f10185c43bfc7d711dddee5"><div class="ttname"><a href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a></div><div class="ttdeci">static gboolean remmina_rdp_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02459">rdp_plugin.c:2459</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a393d4ec6673f6a9c2b71849c109facef"><div class="ttname"><a href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">remmina_rdp_event_on_unmap</a></div><div class="ttdeci">gboolean remmina_rdp_event_on_unmap(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00074">rdp_event.c:74</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a0291f2233b3d82a3f1d521bfc1fabd43"><div class="ttname"><a href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a></div><div class="ttdeci">static gboolean remmina_rdp_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02518">rdp_plugin.c:2518</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a0291f2233b3d82a3f1d521bfc1fabd43"><div class="ttname"><a href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a></div><div class="ttdeci">static gboolean remmina_rdp_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02549">rdp_plugin.c:2549</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ad47177412ada547f7cd6cbb9dfcf0f3f"><div class="ttname"><a href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_rdp_advanced_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02840">rdp_plugin.c:2840</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a6dd204e4f7a63fdcdfb6cd3066cbf309"><div class="ttname"><a href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a></div><div class="ttdeci">static void remmina_rdp_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02392">rdp_plugin.c:2392</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ac66bd1c0ceb224f7a65f5b712148a43e"><div class="ttname"><a href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a></div><div class="ttdeci">static const RemminaProtocolFeature remmina_rdp_features[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02904">rdp_plugin.c:2904</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_addffb9c5555027536804d8ef47b65f3b"><div class="ttname"><a href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a></div><div class="ttdeci">static void remmina_rdp_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02580">rdp_plugin.c:2580</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a1beaae641f40fc4fbcafe84846a2eb76"><div class="ttname"><a href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a></div><div class="ttdeci">static gboolean remmina_rdp_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02476">rdp_plugin.c:2476</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a2986e5b780a080a8a1e2f8d10ece3ac4"><div class="ttname"><a href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a></div><div class="ttdeci">static char remmina_plugin_rdp_version[256]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02918">rdp_plugin.c:2918</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a2b6601868bc70050a57b1025f10225b1"><div class="ttname"><a href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_rdp_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02810">rdp_plugin.c:2810</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a910327fd7b1f969868a746aeb5578d30"><div class="ttname"><a href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a></div><div class="ttdeci">static gboolean remmina_rdp_get_screenshot(RemminaProtocolWidget *gp, RemminaPluginScreenshotData *rpsd)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02590">rdp_plugin.c:2590</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ad47177412ada547f7cd6cbb9dfcf0f3f"><div class="ttname"><a href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_rdp_advanced_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02871">rdp_plugin.c:2871</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a6dd204e4f7a63fdcdfb6cd3066cbf309"><div class="ttname"><a href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a></div><div class="ttdeci">static void remmina_rdp_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02423">rdp_plugin.c:2423</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ac66bd1c0ceb224f7a65f5b712148a43e"><div class="ttname"><a href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a></div><div class="ttdeci">static const RemminaProtocolFeature remmina_rdp_features[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02936">rdp_plugin.c:2936</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_addffb9c5555027536804d8ef47b65f3b"><div class="ttname"><a href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a></div><div class="ttdeci">static void remmina_rdp_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02611">rdp_plugin.c:2611</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a1beaae641f40fc4fbcafe84846a2eb76"><div class="ttname"><a href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a></div><div class="ttdeci">static gboolean remmina_rdp_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02507">rdp_plugin.c:2507</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a2986e5b780a080a8a1e2f8d10ece3ac4"><div class="ttname"><a href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a></div><div class="ttdeci">static char remmina_plugin_rdp_version[256]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02950">rdp_plugin.c:2950</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a2b6601868bc70050a57b1025f10225b1"><div class="ttname"><a href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_rdp_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02841">rdp_plugin.c:2841</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a910327fd7b1f969868a746aeb5578d30"><div class="ttname"><a href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a></div><div class="ttdeci">static gboolean remmina_rdp_get_screenshot(RemminaProtocolWidget *gp, RemminaPluginScreenshotData *rpsd)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02621">rdp_plugin.c:2621</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a09271b787fc086f05a8a6e7c3282d6aa"><div class="ttname"><a href="rdp__event_8c.html#a09271b787fc086f05a8a6e7c3282d6aa">remmina_rdp_event_on_map</a></div><div class="ttdeci">gboolean remmina_rdp_event_on_map(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00052">rdp_event.c:52</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a3b63a366a0db4fddced3f2cffa353b19"><div class="ttname"><a href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a></div><div class="ttdeci">static void remmina_rdp_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02524">rdp_plugin.c:2524</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a3b63a366a0db4fddced3f2cffa353b19"><div class="ttname"><a href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a></div><div class="ttdeci">static void remmina_rdp_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02555">rdp_plugin.c:2555</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02921">2921</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02953">2953</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2120,7 +2120,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02840">2840</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02871">2871</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2144,21 +2144,21 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;domain&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Domain&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;drive&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share folder&quot;</span>), FALSE, NULL, <a class="code" href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a>, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;restricted-admin&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Restricted admin mode&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;pth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password hash&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Restricted admin mode password hash&quot;</span>), NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;left-handed&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Left-handed mouse support&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Swap left and right mouse buttons for left-handed mouse support&quot;</span>), NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disable-smooth-scrolling&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable smooth scrolling&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;multimon&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable multi monitor&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;span&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Span screen over multiple monitors&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;monitorids&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;List monitor IDs&quot;</span>), FALSE, NULL, <a class="code" href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a>, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>, <span class="stringliteral">&quot;resolution&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;colordepth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Colour depth&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;network&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Network connection type&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a>, <a class="code" href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a>, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>, <span class="stringliteral">&quot;keymap&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a71dcb929602ab5480db3152d297485a0"><div class="ttname"><a href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a></div><div class="ttdeci">static gchar network_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02766">rdp_plugin.c:2766</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a71dcb929602ab5480db3152d297485a0"><div class="ttname"><a href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a></div><div class="ttdeci">static gchar network_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02797">rdp_plugin.c:2797</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a934b92c7b33aa57bcafad590031bdcbe"><div class="ttname"><a href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a></div><div class="ttdeci">static gpointer network_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02672">rdp_plugin.c:2672</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a7d6c92b318e43b96efddbcaa9400c1f1"><div class="ttname"><a href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a></div><div class="ttdeci">static gpointer colordepth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02630">rdp_plugin.c:2630</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a16227448ff442f2faacb0156f415d7de"><div class="ttname"><a href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a></div><div class="ttdeci">static gchar monitorids_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02771">rdp_plugin.c:2771</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a934b92c7b33aa57bcafad590031bdcbe"><div class="ttname"><a href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a></div><div class="ttdeci">static gpointer network_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02703">rdp_plugin.c:2703</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a7d6c92b318e43b96efddbcaa9400c1f1"><div class="ttname"><a href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a></div><div class="ttdeci">static gpointer colordepth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02661">rdp_plugin.c:2661</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a16227448ff442f2faacb0156f415d7de"><div class="ttname"><a href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a></div><div class="ttdeci">static gchar monitorids_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02802">rdp_plugin.c:2802</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00102">types.h:102</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00104">types.h:104</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a88ab37248af4668b8b8758175347d3a1"><div class="ttname"><a href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a></div><div class="ttdeci">static gchar drive_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02783">rdp_plugin.c:2783</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a88ab37248af4668b8b8758175347d3a1"><div class="ttname"><a href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a></div><div class="ttdeci">static gchar drive_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02814">rdp_plugin.c:2814</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02810">2810</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02841">2841</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2190,7 +2190,7 @@ Variables</h2></td></tr>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00050">types.h:50</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02904">2904</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02936">2936</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2217,11 +2217,11 @@ Variables</h2></td></tr>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac">REMMINA_PLUGIN_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00049">plugin.h:49</a></div></div>
<div class="ttc" id="rdp__file_8c_html_a5465339535714b34c0f60a4ca386e335"><div class="ttname"><a href="rdp__file_8c.html#a5465339535714b34c0f60a4ca386e335">remmina_rdp_file_import_test</a></div><div class="ttdeci">gboolean remmina_rdp_file_import_test(RemminaFilePlugin *plugin, const gchar *from_file)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__file_8c_source.html#l00041">rdp_file.c:41</a></div></div>
<div class="ttc" id="rdp__file_8c_html_a0141f87575bf2b97219541b419ed467e"><div class="ttname"><a href="rdp__file_8c.html#a0141f87575bf2b97219541b419ed467e">remmina_rdp_file_export</a></div><div class="ttdeci">gboolean remmina_rdp_file_export(RemminaFilePlugin *plugin, RemminaFile *remminafile, const gchar *to_file)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__file_8c_source.html#l00282">rdp_file.c:282</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a2986e5b780a080a8a1e2f8d10ece3ac4"><div class="ttname"><a href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a></div><div class="ttdeci">static char remmina_plugin_rdp_version[256]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02918">rdp_plugin.c:2918</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a2986e5b780a080a8a1e2f8d10ece3ac4"><div class="ttname"><a href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a></div><div class="ttdeci">static char remmina_plugin_rdp_version[256]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02950">rdp_plugin.c:2950</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
<div class="ttc" id="rdp__file_8c_html_a992b5a31dfa961cb3244cb3e2084c4cf"><div class="ttname"><a href="rdp__file_8c.html#a992b5a31dfa961cb3244cb3e2084c4cf">remmina_rdp_file_import</a></div><div class="ttdeci">RemminaFile * remmina_rdp_file_import(RemminaFilePlugin *plugin, const gchar *from_file)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__file_8c_source.html#l00185">rdp_file.c:185</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02946">2946</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02978">2978</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2246,10 +2246,10 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757">REMMINA_PLUGIN_TYPE_PREF</a>, </div><div class="line"> <span class="stringliteral">&quot;RDPS&quot;</span>, </div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - Preferences&quot;</span>), </div><div class="line"> GETTEXT_PACKAGE, </div><div class="line"> <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, </div><div class="line"> <span class="stringliteral">&quot;RDP&quot;</span>, </div><div class="line"> <a class="code" href="rdp__settings_8c.html#a55dda4fb09dc13dafba65becda89e194">remmina_rdp_settings_new</a> </div><div class="line">}</div><div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757">REMMINA_PLUGIN_TYPE_PREF</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00051">plugin.h:51</a></div></div>
<div class="ttc" id="rdp__settings_8c_html_a55dda4fb09dc13dafba65becda89e194"><div class="ttname"><a href="rdp__settings_8c.html#a55dda4fb09dc13dafba65becda89e194">remmina_rdp_settings_new</a></div><div class="ttdeci">GtkWidget * remmina_rdp_settings_new(RemminaPrefPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__settings_8c_source.html#l00696">rdp_settings.c:696</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a2986e5b780a080a8a1e2f8d10ece3ac4"><div class="ttname"><a href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a></div><div class="ttdeci">static char remmina_plugin_rdp_version[256]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02918">rdp_plugin.c:2918</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a2986e5b780a080a8a1e2f8d10ece3ac4"><div class="ttname"><a href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a></div><div class="ttdeci">static char remmina_plugin_rdp_version[256]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02950">rdp_plugin.c:2950</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02961">2961</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02993">2993</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2274,7 +2274,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <span class="stringliteral">&quot;&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Automatic negotiation&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;nla&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;NLA protocol security&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;tls&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TLS protocol security&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;rdp&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP protocol security&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;ext&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;NLA extended protocol security&quot;</span>),</div><div class="line"> NULL</div><div class="line">}</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02695">2695</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02726">2726</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2299,7 +2299,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <span class="stringliteral">&quot;off&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Off&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;local&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;remote&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote&quot;</span>),</div><div class="line"> NULL</div><div class="line">}</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02686">2686</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02717">2717</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2324,7 +2324,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Advanced setting for high latency links:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot;Adjusts the connection timeout. Use if your connection times out.\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot;The highest possible value is 600000 ms (10 minutes).\n&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02761">2761</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02792">2792</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2349,7 +2349,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <span class="stringliteral">&quot;&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Default&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;0 — Windows 7 compatible&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;1&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;2&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;3&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;3&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;4&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;4&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;5&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;5&quot;</span>),</div><div class="line"> NULL</div><div class="line">}</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02713">2713</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02744">2744</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
@@ -2374,7 +2374,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of USB device:\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • [dbg,][id:&lt;vid&gt;:&lt;pid&gt;#…,][addr:&lt;bus&gt;:&lt;addr&gt;#…,][auto]\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • auto\n&quot;</span></div><div class="line"> <span class="stringliteral">&quot; • id:054c:0268#4669:6e6b,addr:04:0c&quot;</span>)</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02755">2755</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l02786">2786</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
diff --git a/public/rdp__plugin_8c_source.html b/public/rdp__plugin_8c_source.html
index bb1b4e84d..3d8754a01 100644
--- a/public/rdp__plugin_8c_source.html
+++ b/public/rdp__plugin_8c_source.html
@@ -86,39 +86,39 @@ $(document).ready(function(){initNavTree('rdp__plugin_8c_source.html','');});
<div class="title">rdp_plugin.c</div> </div>
</div><!--header-->
<div class="contents">
-<a href="rdp__plugin_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2022 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Copyright (C) 2022-2023 Antenore Gatta, Giovanni Panozzo, Hiroyuki Tanaka</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define _GNU_SOURCE</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="plugin_8h.html">remmina/plugin.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__plugin_8h.html">rdp_plugin.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__event_8h.html">rdp_event.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__graphics_8h.html">rdp_graphics.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__file_8h.html">rdp_file.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__settings_8h.html">rdp_settings.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__cliprdr_8h.html">rdp_cliprdr.h</a>&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__monitor_8h.html">rdp_monitor.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__channels_8h.html">rdp_channels.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &lt;sys/time.h&gt;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo-xlib.h&gt;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;freerdp/addin.h&gt;</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;freerdp/settings.h&gt;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &lt;freerdp/freerdp.h&gt;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &lt;freerdp/constants.h&gt;</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &lt;freerdp/client/cliprdr.h&gt;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &lt;freerdp/client/channels.h&gt;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &lt;freerdp/client/cmdline.h&gt;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &lt;freerdp/error.h&gt;</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &lt;freerdp/event.h&gt;</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &lt;winpr/memory.h&gt;</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &lt;winpr/cmdline.h&gt;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &lt;ctype.h&gt;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#ifdef HAVE_CUPS</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &lt;cups/cups.h&gt;</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#include &lt;X11/Xlib.h&gt;</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#include &lt;X11/XKBlib.h&gt;</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkx.h&gt;</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#elif defined(GDK_WINDOWING_WAYLAND)</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkwayland.h&gt;</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#if defined(__FreeBSD__)</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &lt;pthread_np.h&gt;</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#include &lt;freerdp/locale/keyboard.h&gt;</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_TOOL_REFRESH 1</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_SCALE 2</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_UNFOCUS 3</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_TOOL_SENDCTRLALTDEL 4</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_DYNRESUPDATE 5</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_MULTIMON 6</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_VIEWONLY 7</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#define REMMINA_CONNECTION_TYPE_NONE 0</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> #define CLPARAM const char</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"> #define CLPARAM char</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="www__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7"> 111</a></span>&#160;<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *<a class="code" href="rdp__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a> = NULL;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f"> 113</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> = FALSE;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">/* Compatibility: these functions have been introduced with https://github.com/FreeRDP/FreeRDP/commit/8c5d96784d</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> * and are missing on older FreeRDP, so we add them here.</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> * They should be removed from here after all distributed versions of FreeRDP (libwinpr) will have</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> * CommandLineParseCommaSeparatedValuesEx() onboard.</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> * (C) Copyright goes to the FreeRDP authors.</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c"> 122</a></span>&#160;<span class="keyword">static</span> CLPARAM **<a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *list, <span class="keywordtype">size_t</span> *count)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 0, 0)</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> (CLPARAM **)CommandLineParseCommaSeparatedValuesEx(name, list, count);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">char</span> **p;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">char</span> *str;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">size_t</span> nArgs;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">size_t</span> index;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">size_t</span> nCommas;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">size_t</span> prefix, len;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; nCommas = 0;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span> (count == NULL)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; *count = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (!list) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span> (name) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">size_t</span> len = strlen(name);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; p = (<span class="keywordtype">char</span> **)calloc(2UL + len, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span> *));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> (p) {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">char</span> *dst = (<span class="keywordtype">char</span> *)&amp;p[1];</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; p[0] = dst;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; sprintf_s(dst, len + 1, <span class="stringliteral">&quot;%s&quot;</span>, name);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; *count = 1;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *it = list;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">while</span> ((it = strchr(it, <span class="charliteral">&#39;,&#39;</span>)) != NULL) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; it++;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; nCommas++;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; nArgs = nCommas + 1;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> (name)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; nArgs++;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; prefix = (nArgs + 1UL) * <span class="keyword">sizeof</span>(<span class="keywordtype">char</span> *);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; len = strlen(list);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; p = (<span class="keywordtype">char</span> **)calloc(len + prefix + 1, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span> *));</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (!p)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; str = &amp;((<span class="keywordtype">char</span> *)p)[prefix];</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; memcpy(str, list, len);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (name)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; p[0] = (<span class="keywordtype">char</span> *)name;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">for</span> (index = name ? 1 : 0; index &lt; nArgs; index++) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">char</span> *comma = strchr(str, <span class="charliteral">&#39;,&#39;</span>);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; p[index] = str;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span> (comma) {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; str = comma + 1;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; *comma = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; *count = nArgs;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f"> 201</a></span>&#160;<span class="keyword">static</span> CLPARAM **<a class="code" href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f">remmina_rdp_CommandLineParseCommaSeparatedValues</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *list, <span class="keywordtype">size_t</span> *count)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;{</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(NULL, list, count);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment"> * End of CommandLineParseCommaSeparatedValuesEx() compatibility and copyright</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29"> 210</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29">rf_process_event_queue</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; UINT16 flags;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; rdpInput *input;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="structremmina__plugin__rdp__event.html">RemminaPluginRdpEvent</a> *event;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; DISPLAY_CONTROL_MONITOR_LAYOUT *dcml;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; CLIPRDR_FORMAT_DATA_RESPONSE response = { 0 };</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a5d119b1f108fe84c74e6484d48c2a565">event_queue</a> == NULL)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; input = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;input;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">while</span> ((event = (<a class="code" href="structremmina__plugin__rdp__event.html">RemminaPluginRdpEvent</a> *)g_async_queue_try_pop(rfi-&gt;<a class="code" href="structrf__context.html#a5d119b1f108fe84c74e6484d48c2a565">event_queue</a>)) != NULL) {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">switch</span> (event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a84797e0cdf4484432740a8946325f126">type</a>) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7ae248ff32977c650df357c079f9d8b6e2">REMMINA_RDP_EVENT_TYPE_SCANCODE</a>:</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; flags = <span class="keyword">event</span>-&gt;key_event.extended ? KBD_FLAGS_EXTENDED : 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; flags |= <span class="keyword">event</span>-&gt;key_event.up ? KBD_FLAGS_RELEASE : KBD_FLAGS_DOWN;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; input-&gt;KeyboardEvent(input, flags, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a18cb50afaa8b9df1759f87899892fdb6">key_event</a>.key_code);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7ab15f261f1918633711921198fea0029f">REMMINA_RDP_EVENT_TYPE_SCANCODE_UNICODE</a>:</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> * TS_UNICODE_KEYBOARD_EVENT RDP message, see https://msdn.microsoft.com/en-us/library/cc240585.aspx</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; flags = <span class="keyword">event</span>-&gt;key_event.up ? KBD_FLAGS_RELEASE : KBD_FLAGS_DOWN;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; input-&gt;UnicodeKeyboardEvent(input, flags, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a18cb50afaa8b9df1759f87899892fdb6">key_event</a>.unicode_code);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a8c8701fc5ef4ff1196c8d088dd146a5b">REMMINA_RDP_EVENT_TYPE_MOUSE</a>:</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.extended)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; input-&gt;ExtendedMouseEvent(input, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.flags,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.x, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.y);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; input-&gt;MouseEvent(input, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.flags,</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.x, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.y);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7aebb0df0651989a89f3f05e3c4894dd50">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_LIST</a>:</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>-&gt;ClientFormatList(rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a72cd3fa2cc46eb03de7f68d63b2646b2">clipboard_formatlist</a>.pFormatList);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; free(event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a72cd3fa2cc46eb03de7f68d63b2646b2">clipboard_formatlist</a>.pFormatList);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a2e49b2022527a7f87ba0115e644d16d6">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_DATA_RESPONSE</a>:</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; response.msgFlags = (<span class="keyword">event</span>-&gt;clipboard_formatdataresponse.data) ? CB_RESPONSE_OK : CB_RESPONSE_FAIL;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; response.dataLen = <span class="keyword">event</span>-&gt;clipboard_formatdataresponse.size;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; response.requestedFormatData = <span class="keyword">event</span>-&gt;clipboard_formatdataresponse.data;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>-&gt;ClientFormatDataResponse(rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>, &amp;response);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a899b766953e73fd8aa148a9d8f28434b">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_DATA_REQUEST</a>:</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Sending client FormatDataRequest to server&quot;</span>);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; gettimeofday(&amp;(rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#af85bab349549714dc18a8938ac60926d">clientformatdatarequest_tv</a>), NULL);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>-&gt;ClientFormatDataRequest(rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a008a5e7caebab7b0a5d4f6a48b4c63f6">clipboard_formatdatarequest</a>.pFormatDataRequest);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; free(event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a008a5e7caebab7b0a5d4f6a48b4c63f6">clipboard_formatdatarequest</a>.pFormatDataRequest);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a1973a1fe40811ab9a21bc77c23c42a05">REMMINA_RDP_EVENT_TYPE_SEND_MONITOR_LAYOUT</a>:</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;multimon&quot;</span>, FALSE)) {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseMultimon, TRUE);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">/* TODO Add an option for this */</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ForceMultimon, TRUE);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Fullscreen, TRUE);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">/* got some crashes with g_malloc0, to be investigated */</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; dcml = calloc(freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorCount), <span class="keyword">sizeof</span>(DISPLAY_CONTROL_MONITOR_LAYOUT));</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;REMMINA_RDP_EVENT_TYPE_SEND_MONITOR_LAYOUT:&quot;</span>);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (!dcml)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">const</span> rdpMonitor *base = freerdp_settings_get_pointer(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorDefArray);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">for</span> (gint i = 0; i &lt; freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorCount); ++i) {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> rdpMonitor *current = &amp;base[i];</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Sending display layout for monitor n° %d&quot;</span>, i);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; dcml[i].Flags = (current-&gt;is_primary ? DISPLAY_CONTROL_MONITOR_PRIMARY : 0);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d is primary: %d&quot;</span>, i, dcml[i].Flags);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; dcml[i].Left = current-&gt;x;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d x: %d&quot;</span>, i, dcml[i].Left);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; dcml[i].Top = current-&gt;y;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d y: %d&quot;</span>, i, dcml[i].Top);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; dcml[i].Width = current-&gt;width;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d width: %d&quot;</span>, i, dcml[i].Width);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; dcml[i].Height = current-&gt;height;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d height: %d&quot;</span>, i, dcml[i].Height);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; dcml[i].PhysicalWidth = current-&gt;attributes.physicalWidth;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d physical width: %d&quot;</span>, i, dcml[i].PhysicalWidth);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; dcml[i].PhysicalHeight = current-&gt;attributes.physicalHeight;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d physical height: %d&quot;</span>, i, dcml[i].PhysicalHeight);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (current-&gt;attributes.orientation)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; dcml[i].Orientation = current-&gt;attributes.orientation;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; dcml[i].Orientation = <span class="keyword">event</span>-&gt;monitor_layout.desktopOrientation;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d orientation: %d&quot;</span>, i, dcml[i].Orientation);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; dcml[i].DesktopScaleFactor = <span class="keyword">event</span>-&gt;monitor_layout.desktopScaleFactor;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; dcml[i].DeviceScaleFactor = <span class="keyword">event</span>-&gt;monitor_layout.deviceScaleFactor;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a>-&gt;SendMonitorLayout(rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorCount), dcml);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; g_free(dcml);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; dcml = g_malloc0(<span class="keyword">sizeof</span>(DISPLAY_CONTROL_MONITOR_LAYOUT));</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (dcml) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; dcml-&gt;Flags = DISPLAY_CONTROL_MONITOR_PRIMARY;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; dcml-&gt;Width = <span class="keyword">event</span>-&gt;monitor_layout.width;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; dcml-&gt;Height = <span class="keyword">event</span>-&gt;monitor_layout.height;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; dcml-&gt;Orientation = <span class="keyword">event</span>-&gt;monitor_layout.desktopOrientation;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; dcml-&gt;DesktopScaleFactor = <span class="keyword">event</span>-&gt;monitor_layout.desktopScaleFactor;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; dcml-&gt;DeviceScaleFactor = <span class="keyword">event</span>-&gt;monitor_layout.deviceScaleFactor;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a>-&gt;SendMonitorLayout(rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a>, 1, dcml);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; g_free(dcml); \</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a6b5a1dbb05d7f63d451b84ea5ec85c03">REMMINA_RDP_EVENT_DISCONNECT</a>:</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">/* Disconnect requested via GUI (i.e: tab destroy/close) */</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; freerdp_abort_connect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; g_free(event);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af"> 338</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af">remmina_rdp_tunnel_init</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;{</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">/* Opens the optional SSH tunnel if needed.</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment"> * Used also when reopening the same tunnel for a FreeRDP reconnect.</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment"> * Returns TRUE if all OK, and setups correct rfi-&gt;Settings values</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment"> * with connection and certificate parameters */</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; gchar *hostport;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; gchar *s;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; gchar *host;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; gchar *cert_host;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; gint cert_port;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; gint port;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Tunnel init&quot;</span>);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; hostport = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ae95121f8f944c058d4f0683073f79183">protocol_plugin_start_direct_tunnel</a>(gp, 3389, FALSE);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span> (hostport == NULL)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a6fdfd3063906f49157225f536537bb0f">get_server_port</a>(hostport, 3389, &amp;host, &amp;port);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">if</span> (host[0] == 0)</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;protocol_plugin_start_direct_tunnel() returned %s&quot;</span>, hostport);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; cert_host = host;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; cert_port = port;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span> (!rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a>) {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="comment">/* settings-&gt;CertificateName and settings-&gt;ServerHostname is created</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment"> * only on 1st connect, not on reconnections */</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname, host);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">if</span> (cert_port == 3389) {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_CertificateName, cert_host);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; s = g_strdup_printf(<span class="stringliteral">&quot;%s:%d&quot;</span>, cert_host, cert_port);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_CertificateName, s);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; g_free(s);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Tunnel has been optionally initialized. Now connecting to %s:%d&quot;</span>, host, port);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (cert_host != host) g_free(cert_host);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; g_free(host);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; g_free(hostport);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerPort, port);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;}</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a9f14eee602089f6ff152e1c93c44c3e9"> 397</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a9f14eee602089f6ff152e1c93c44c3e9">rf_auto_reconnect</a>(<a class="code" href="structrf__context.html">rfContext</a> *rfi)</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;{</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; rdpSettings *settings = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;settings;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a> *ui;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; time_t treconn;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; gchar *cval;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; gint maxattempts;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = TRUE;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a> = FALSE;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="comment">/* Get the value set in FreeRDP_AutoReconnectMaxRetries (20) */</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; maxattempts = freerdp_settings_get_uint32(settings, FreeRDP_AutoReconnectMaxRetries);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;maxattempts from default: %d&quot;</span>, maxattempts);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">/* Get the value from the global preferences if any */</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> ((cval = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">pref_get_value</a>(<span class="stringliteral">&quot;rdp_reconnect_attempts&quot;</span>)) != NULL)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; maxattempts = atoi(cval);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;maxattempts from general preferences: %d&quot;</span>, maxattempts);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">/* Get the value from the profile if any, otherwise uses the value of maxattempts */</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; maxattempts = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;rdp_reconnect_attempts&quot;</span>, maxattempts);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;maxattempts from general plugin: %d&quot;</span>, maxattempts);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">/* If maxattemps is &lt;= 0, we get the value from FreeRDP_AutoReconnectMaxRetries (20) */</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span> (maxattempts &lt;= 0)</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; maxattempts = freerdp_settings_get_uint32(settings, FreeRDP_AutoReconnectMaxRetries);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_AutoReconnectMaxRetries, maxattempts);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;maxattempts set to: %d&quot;</span>, maxattempts);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa0b949ab1e2f06b7d5efeccc924efaee">reconnect_maxattempts</a> = maxattempts;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a4c35800dba8da687f7f56e3bb7a23413">reconnect_nattempt</a> = 0;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="comment">/* Only auto reconnect on network disconnects. */</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">switch</span> (freerdp_error_info(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>)) {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">case</span> ERRINFO_GRAPHICS_SUBSYSTEM_FAILED:</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="comment">/* Disconnected by server hitting a bug or resource limit */</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">case</span> ERRINFO_SUCCESS:</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">/* A network disconnect was detected */</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = FALSE;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">if</span> (!freerdp_settings_get_bool(settings, FreeRDP_AutoReconnectionEnabled)) {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="comment">/* No auto-reconnect - just quit */</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = FALSE;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="comment">/* A network disconnect was detected and we should try to reconnect */</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] network disconnection detected, initiating reconnection attempt&quot;</span>,</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7">REMMINA_RDP_UI_RECONNECT_PROGRESS</a>;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>, ui);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="comment">/* Sleep half a second to allow:</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="comment"> * - processing of the UI event we just pushed on the queue</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="comment"> * - better network conditions</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="comment"> * Remember: We hare on a thread, so the main gui won’t lock */</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; usleep(500000);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="comment">/* Perform an auto-reconnect. */</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">while</span> (TRUE) {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="comment">/* Quit retrying if max retries has been exceeded */</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a4c35800dba8da687f7f56e3bb7a23413">reconnect_nattempt</a>++ &gt;= rfi-&gt;<a class="code" href="structrf__context.html#aa0b949ab1e2f06b7d5efeccc924efaee">reconnect_maxattempts</a>) {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] maximum number of reconnection attempts exceeded.&quot;</span>,</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a>) {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] reconnect request loop interrupted by user.&quot;</span>,</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">/* Attempt the next reconnect */</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] reconnection, attempt #%d of %d&quot;</span>,</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname), rfi-&gt;<a class="code" href="structrf__context.html#a4c35800dba8da687f7f56e3bb7a23413">reconnect_nattempt</a>, rfi-&gt;<a class="code" href="structrf__context.html#aa0b949ab1e2f06b7d5efeccc924efaee">reconnect_maxattempts</a>);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7">REMMINA_RDP_UI_RECONNECT_PROGRESS</a>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>, ui);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; treconn = time(NULL);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="comment">/* Reconnect the SSH tunnel, if needed */</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af">remmina_rdp_tunnel_init</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>)) {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] unable to recreate tunnel with remmina_rdp_tunnel_init.&quot;</span>,</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span> (freerdp_reconnect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>)) {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="comment">/* Reconnection is successful */</span></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] reconnected.&quot;</span>, freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = FALSE;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">/* Wait until 5 secs have elapsed from last reconnect attempt, while checking for rfi-&gt;stop_reconnecting_requested */</span></div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">while</span> (time(NULL) - treconn &lt; 5) {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a>)</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; usleep(200000); <span class="comment">// 200ms sleep</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = FALSE;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;}</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a915615896fa6ad63f6b89e52401a0144"> 514</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a915615896fa6ad63f6b89e52401a0144">rf_begin_paint</a>(rdpContext *context)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;{</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; rdpGdi *gdi;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span> (!context)</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; gdi = context-&gt;gdi;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span> (!gdi || !gdi-&gt;primary || !gdi-&gt;primary-&gt;hdc || !gdi-&gt;primary-&gt;hdc-&gt;hwnd)</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;}</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ab94fa2ca38e70e8c4b168f7e67a24d45"> 529</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#ab94fa2ca38e70e8c4b168f7e67a24d45">rf_end_paint</a>(rdpContext *context)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;{</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; rdpGdi *gdi;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a> *ui;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordtype">int</span> i, ninvalid;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="structregion.html">region</a> *reg;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; HGDI_RGN cinvalid;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; gdi = context-&gt;gdi;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)context;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">if</span> (gdi == NULL || gdi-&gt;primary == NULL || gdi-&gt;primary-&gt;hdc == NULL || gdi-&gt;primary-&gt;hdc-&gt;hwnd == NULL)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">if</span> (gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;invalid-&gt;null)</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span> (gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;ninvalid &lt; 1)</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; ninvalid = gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;ninvalid;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; cinvalid = gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;cinvalid;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; reg = (<a class="code" href="structregion.html">region</a> *)g_malloc(<span class="keyword">sizeof</span>(<a class="code" href="structregion.html">region</a>) * ninvalid);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; ninvalid; i++) {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; reg[i].<a class="code" href="structregion.html#ad258e7b02e819b46656294de5e4bd8ad">x</a> = cinvalid[i].x;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; reg[i].<a class="code" href="structregion.html#a97015e361d0cbedf7dcab10fbea95b10">y</a> = cinvalid[i].y;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; reg[i].<a class="code" href="structregion.html#a3b8e9f37558f5a790945b9dc1cbcadb6">w</a> = cinvalid[i].w;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; reg[i].<a class="code" href="structregion.html#a585e1a437e6e8f8a80785aec2f2762c8">h</a> = cinvalid[i].h;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; }</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072acd86c5f1b34b0d7168c94892cfd2cb9e">REMMINA_RDP_UI_UPDATE_REGIONS</a>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#acef425d73af8935a8bc784d56f7b125c">reg</a>.ninvalid = ninvalid;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#acef425d73af8935a8bc784d56f7b125c">reg</a>.ureg = reg;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>, ui);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;invalid-&gt;null = TRUE;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;ninvalid = 0;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;}</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a992a905d014d83a8de736ffbd85fe901"> 576</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a992a905d014d83a8de736ffbd85fe901">rf_desktop_resize</a>(rdpContext *context)</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;{</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a> *ui;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; UINT32 w, h;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)context;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; w = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; h = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#abaf7f57e2336f6e5c257e9c30fedc047">protocol_plugin_set_width</a>(gp, w);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">protocol_plugin_set_height</a>(gp, h);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072aa5f6f338ffaa4bed53b225cf54b50000">REMMINA_RDP_UI_EVENT</a>;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a87d27be6d29a42e284192bad1a6f1a32">event</a>.type = <a class="code" href="rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35ad2dd5f6251de0ac7afe2f962c829aa48">REMMINA_RDP_UI_EVENT_DESTROY_CAIRO_SURFACE</a>;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="rdp__event_8c.html#ab5fe43c1b1b77c39f118d2581942eb81">remmina_rdp_event_queue_ui_sync_retint</a>(gp, ui);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="comment">/* Tell libfreerdp to change its internal GDI bitmap width and heigt,</span></div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="comment"> * this will also destroy gdi-&gt;primary_buffer, making our rfi-&gt;surface invalid */</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; gdi_resize(((rdpContext *)rfi)-&gt;gdi, w, h);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">/* Call to remmina_rdp_event_update_scale(gp) on the main UI thread,</span></div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="comment"> * this will recreate rfi-&gt;surface from gdi-&gt;primary_buffer */</span></div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072aa5f6f338ffaa4bed53b225cf54b50000">REMMINA_RDP_UI_EVENT</a>;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a87d27be6d29a42e284192bad1a6f1a32">event</a>.type = <a class="code" href="rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35a5bec41fd19576fc5c3e397366461dfe4">REMMINA_RDP_UI_EVENT_UPDATE_SCALE</a>;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <a class="code" href="rdp__event_8c.html#ab5fe43c1b1b77c39f118d2581942eb81">remmina_rdp_event_queue_ui_sync_retint</a>(gp, ui);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a734f491f20072acdcbebb41e36bafe2f">protocol_plugin_desktop_resize</a>(gp);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;}</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde"> 614</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde">rf_play_sound</a>(rdpContext *context, <span class="keyword">const</span> PLAY_SOUND_UPDATE *play_sound)</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;{</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; GdkDisplay *disp;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)context;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; disp = gtk_widget_get_display(GTK_WIDGET(gp));</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; gdk_display_beep(disp);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;}</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;</div><div class="line"><a name="l00630"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4"> 630</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4">rf_keyboard_set_indicators</a>(rdpContext *context, UINT16 led_flags)</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;{</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; GdkDisplay *disp;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)context;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; disp = gtk_widget_get_display(GTK_WIDGET(gp));</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">if</span> (GDK_IS_X11_DISPLAY(disp)) {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="comment">/* TODO: We are not on the main thread. Will X.Org complain? */</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; Display *x11_display;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; x11_display = gdk_x11_display_get_xdisplay(disp);</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; XkbLockModifiers(x11_display, XkbUseCoreKbd,</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; LockMask | Mod2Mask,</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; ((led_flags &amp; KBD_SYNC_CAPS_LOCK) ? LockMask : 0) |</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; ((led_flags &amp; KBD_SYNC_NUM_LOCK) ? Mod2Mask : 0)</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; );</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="comment">/* TODO: Add support to KANA_LOCK and SCROLL_LOCK */</span></div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;}</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a2bce72cf8deae18499d422515d3f546c"> 659</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a2bce72cf8deae18499d422515d3f546c">rf_keyboard_set_ime_status</a>(rdpContext *context, UINT16 imeId, UINT32 imeState,</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; UINT32 imeConvMode)</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;{</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">if</span> (!context)</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="comment">/* Unimplemented, we ignore it */</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;}</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a0bc4113554537fd1a9e4c8bb9201e789"> 671</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a0bc4113554537fd1a9e4c8bb9201e789">remmina_rdp_pre_connect</a>(freerdp *instance)</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;{</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; rdpChannels *channels;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; rdpSettings *settings;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; rdpContext *context = instance-&gt;context;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; settings = instance-&gt;settings;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; channels = context-&gt;channels;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_OsMajorType, OSMAJORTYPE_UNIX);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_OsMinorType, OSMINORTYPE_UNSPECIFIED);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_BitmapCacheEnabled, TRUE);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_OffscreenSupportLevel, 1);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; PubSub_SubscribeChannelConnected(instance-&gt;context-&gt;pubSub,</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <a class="code" href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">remmina_rdp_OnChannelConnectedEventHandler</a>);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; PubSub_SubscribeChannelDisconnected(instance-&gt;context-&gt;pubSub,</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <a class="code" href="rdp__channels_8c.html#a2d82ea9a38463d03c07271a356ccaec2">remmina_rdp_OnChannelDisconnectedEventHandler</a>);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">if</span> (!freerdp_client_load_addins(channels, settings))</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;}</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ac8d1ec82167ad20b7634ed545d4badbc"> 696</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#ac8d1ec82167ad20b7634ed545d4badbc">remmina_rdp_post_connect</a>(freerdp *instance)</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;{</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a> *ui;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; UINT32 freerdp_local_color_format;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">postconnect_error</a> = REMMINA_POSTCONNECT_ERROR_OK;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a> = FALSE; <span class="comment">// We authenticated!</span></div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a9d28c775fe1ee90ad48941d753564a76">srcBpp</a> = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec) == FALSE)</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a91f20005b39ad9e1073cf25bf6d7c2f2">sw_gdi</a> = TRUE;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <a class="code" href="rdp__graphics_8c.html#a95732c40c35499f3440715b6526279b1">rf_register_graphics</a>(instance-&gt;context-&gt;graphics);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;bpp: %d&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a40e89e126e5dd96a3f67e6f945a8867b">bpp</a>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">switch</span> (rfi-&gt;<a class="code" href="structrf__context.html#a40e89e126e5dd96a3f67e6f945a8867b">bpp</a>) {</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">case</span> 24:</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;CAIRO_FORMAT_RGB24&quot;</span>);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; freerdp_local_color_format = PIXEL_FORMAT_BGRX32;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa13bb4f72f3024d81e9051de4bd65ec0">cairo_format</a> = CAIRO_FORMAT_RGB24;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">case</span> 32:</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;CAIRO_FORMAT_RGB24&quot;</span>);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; freerdp_local_color_format = PIXEL_FORMAT_BGRA32;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa13bb4f72f3024d81e9051de4bd65ec0">cairo_format</a> = CAIRO_FORMAT_RGB24;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;CAIRO_FORMAT_RGB16_565&quot;</span>);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; freerdp_local_color_format = PIXEL_FORMAT_RGB16;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa13bb4f72f3024d81e9051de4bd65ec0">cairo_format</a> = CAIRO_FORMAT_RGB16_565;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">if</span> (!gdi_init(instance, freerdp_local_color_format)) {</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">postconnect_error</a> = REMMINA_POSTCONNECT_ERROR_GDI_INIT;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">if</span> (instance-&gt;context-&gt;codecs-&gt;h264 == NULL &amp;&amp; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264)) {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; gdi_free(instance);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">postconnect_error</a> = REMMINA_POSTCONNECT_ERROR_NO_H264;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="comment">// pointer_cache_register_callbacks(instance-&gt;update);</span></div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; instance-&gt;update-&gt;BeginPaint = <a class="code" href="rdp__plugin_8c.html#a915615896fa6ad63f6b89e52401a0144">rf_begin_paint</a>;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; instance-&gt;update-&gt;EndPaint = <a class="code" href="rdp__plugin_8c.html#ab94fa2ca38e70e8c4b168f7e67a24d45">rf_end_paint</a>;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; instance-&gt;update-&gt;DesktopResize = <a class="code" href="rdp__plugin_8c.html#a992a905d014d83a8de736ffbd85fe901">rf_desktop_resize</a>;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; instance-&gt;update-&gt;PlaySound = <a class="code" href="rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde">rf_play_sound</a>;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; instance-&gt;update-&gt;SetKeyboardIndicators = <a class="code" href="rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4">rf_keyboard_set_indicators</a>;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; instance-&gt;update-&gt;SetKeyboardImeStatus = <a class="code" href="rdp__plugin_8c.html#a2bce72cf8deae18499d422515d3f546c">rf_keyboard_set_ime_status</a>;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <a class="code" href="rdp__cliprdr_8c.html#ac3300142e3c2f416896948681ecd45f3">remmina_rdp_clipboard_init</a>(rfi);</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072ad3ced07ddeda0100b59ca9c8af47bbe9">REMMINA_RDP_UI_CONNECTED</a>;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <a class="code" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a>(gp, ui);</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;}</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af33e88ae9c13745eb6d36f36418e3676"> 771</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#af33e88ae9c13745eb6d36f36418e3676">remmina_rdp_authenticate</a>(freerdp *instance, <span class="keywordtype">char</span> **username, <span class="keywordtype">char</span> **password, <span class="keywordtype">char</span> **domain)</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;{</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; gchar *s_username, *s_password, *s_domain;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; gint ret;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; gboolean save;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; gboolean disablepasswordstoring;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; disablepasswordstoring = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, FALSE);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; ret = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a9b4cfe0a97a34260e58784feef693704">protocol_plugin_init_auth</a>(gp,</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; (disablepasswordstoring ? 0 : <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>) | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a> | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>,</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; _(<span class="stringliteral">&quot;Enter RDP authentication credentials&quot;</span>),</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>),</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>),</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>),</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; NULL);</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">if</span> (ret == GTK_RESPONSE_OK) {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; s_username = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">protocol_plugin_init_get_username</a>(gp);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">if</span> (s_username) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Username, s_username);</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; s_password = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">protocol_plugin_init_get_password</a>(gp);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">if</span> (s_password) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Password, s_password);</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; s_domain = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aaa37f5061689c3663087a19f598e550b">protocol_plugin_init_get_domain</a>(gp);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">if</span> (s_domain) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Domain, s_domain);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>, s_username);</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>, s_domain);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; save = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#af2b857b2de1af3621f543b810f68b17b">protocol_plugin_init_get_savepassword</a>(gp);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keywordflow">if</span> (save) {</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="comment">// User has requested to save credentials. We put the password</span></div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="comment">// into remminafile-&gt;settings. It will be saved later, on successful connection, by</span></div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="comment">// rcw.c</span></div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, s_password);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, NULL);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; }</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keywordflow">if</span> (s_username) g_free(s_username);</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">if</span> (s_password) g_free(s_password);</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">if</span> (s_domain) g_free(s_domain);</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;}</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a71166233c6c9e4714cbdb0d74ce7c579"> 830</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a71166233c6c9e4714cbdb0d74ce7c579">remmina_rdp_gw_authenticate</a>(freerdp *instance, <span class="keywordtype">char</span> **username, <span class="keywordtype">char</span> **password, <span class="keywordtype">char</span> **domain)</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;{</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; gchar *s_username, *s_password, *s_domain;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; gint ret;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; gboolean save;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; gboolean disablepasswordstoring;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; gboolean basecredforgw;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">if</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_server&quot;</span>))</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; disablepasswordstoring = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, FALSE);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; basecredforgw = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;base-cred-for-gw&quot;</span>, FALSE);</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">if</span> (basecredforgw) {</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; ret = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a9b4cfe0a97a34260e58784feef693704">protocol_plugin_init_auth</a>(gp,</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; (disablepasswordstoring ? 0 : <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>) | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a> | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>,</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; _(<span class="stringliteral">&quot;Enter RDP authentication credentials&quot;</span>),</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>),</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>),</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>),</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; NULL);</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; ret = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a9b4cfe0a97a34260e58784feef693704">protocol_plugin_init_auth</a>(gp,</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; (disablepasswordstoring ? 0 : <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>) | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a> | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>,</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; _(<span class="stringliteral">&quot;Enter RDP gateway authentication credentials&quot;</span>),</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>),</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>),</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>),</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; NULL);</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; }</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">if</span> (ret == GTK_RESPONSE_OK) {</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; s_username = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">protocol_plugin_init_get_username</a>(gp);</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">if</span> (s_username) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername, s_username);</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; s_password = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">protocol_plugin_init_get_password</a>(gp);</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">if</span> (s_password) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPassword, s_password);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; s_domain = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aaa37f5061689c3663087a19f598e550b">protocol_plugin_init_get_domain</a>(gp);</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keywordflow">if</span> (s_domain) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain, s_domain);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; save = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#af2b857b2de1af3621f543b810f68b17b">protocol_plugin_init_get_savepassword</a>(gp);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">if</span> (basecredforgw) {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>, s_username);</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>, s_domain);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">if</span> (save)</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, s_password);</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, NULL);</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>, s_username);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>, s_domain);</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordflow">if</span> (save)</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>, s_password);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>, NULL);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; }</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">if</span> (s_username) g_free(s_username);</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">if</span> (s_password) g_free(s_password);</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">if</span> (s_domain) g_free(s_domain);</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; }</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;}</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;</div><div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a23cb647672c113276cbf86689f2f9054"> 910</a></span>&#160;<span class="keyword">static</span> DWORD <a class="code" href="rdp__plugin_8c.html#a23cb647672c113276cbf86689f2f9054">remmina_rdp_verify_certificate_ex</a>(freerdp *instance, <span class="keyword">const</span> <span class="keywordtype">char</span> *host, UINT16 port,</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *common_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *subject,</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *issuer, <span class="keyword">const</span> <span class="keywordtype">char</span> *fingerprint, DWORD flags)</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;{</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; gint status;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; status = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aeaf95501d1d2ce27589cfdf69511009c">protocol_plugin_init_certificate</a>(gp, subject, issuer, fingerprint);</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">if</span> (status == GTK_RESPONSE_OK)</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;}</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;<span class="keyword">static</span> DWORD</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;<a class="code" href="rdp__plugin_8c.html#a4b10b6decd6ea742b10c7572f2453d9e">remmina_rdp_verify_certificate</a>(freerdp *instance, <span class="keyword">const</span> <span class="keywordtype">char</span> *common_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *subject, <span class="keyword">const</span> <span class="keywordtype">char</span> *issuer, <span class="keyword">const</span> <span class="keywordtype">char</span> *fingerprint, BOOL host_mismatch) __attribute__ ((unused));</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;<span class="keyword">static</span> DWORD</div><div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a4b10b6decd6ea742b10c7572f2453d9e"> 933</a></span>&#160;<a class="code" href="rdp__plugin_8c.html#a4b10b6decd6ea742b10c7572f2453d9e">remmina_rdp_verify_certificate</a>(freerdp *instance, <span class="keyword">const</span> <span class="keywordtype">char</span> *common_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *subject,</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *issuer, <span class="keyword">const</span> <span class="keywordtype">char</span> *fingerprint, BOOL host_mismatch)</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;{</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; gint status;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; status = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aeaf95501d1d2ce27589cfdf69511009c">protocol_plugin_init_certificate</a>(gp, subject, issuer, fingerprint);</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <span class="keywordflow">if</span> (status == GTK_RESPONSE_OK)</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;}</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;</div><div class="line"><a name="l00952"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a6d333b2bc5bfea17c71159ca5064ba84"> 952</a></span>&#160;<span class="keyword">static</span> DWORD <a class="code" href="rdp__plugin_8c.html#a6d333b2bc5bfea17c71159ca5064ba84">remmina_rdp_verify_changed_certificate_ex</a>(freerdp *instance, <span class="keyword">const</span> <span class="keywordtype">char</span> *host, UINT16 port,</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *common_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *subject,</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *issuer, <span class="keyword">const</span> <span class="keywordtype">char</span> *fingerprint,</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *old_subject, <span class="keyword">const</span> <span class="keywordtype">char</span> *old_issuer,</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *old_fingerprint, DWORD flags)</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;{</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; gint status;</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; status = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#af45af14b2b083a7093f36b8cafda1cee">protocol_plugin_changed_certificate</a>(gp, subject, issuer, fingerprint, old_fingerprint);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keywordflow">if</span> (status == GTK_RESPONSE_OK)</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;}</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;</div><div class="line"><a name="l00974"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ab9e7535ac53b25e8923a3b9fd1622046"> 974</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#ab9e7535ac53b25e8923a3b9fd1622046">remmina_rdp_post_disconnect</a>(freerdp *instance)</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;{</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">if</span> (!instance || !instance-&gt;context)</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; PubSub_UnsubscribeChannelConnected(instance-&gt;context-&gt;pubSub,</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <a class="code" href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">remmina_rdp_OnChannelConnectedEventHandler</a>);</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; PubSub_UnsubscribeChannelDisconnected(instance-&gt;context-&gt;pubSub,</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="rdp__channels_8c.html#a2d82ea9a38463d03c07271a356ccaec2">remmina_rdp_OnChannelDisconnectedEventHandler</a>);</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="comment">/* The remaining cleanup will be continued on main thread by complete_cleanup_on_main_thread() */</span></div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;}</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;</div><div class="line"><a name="l00989"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#adb2d2f801618ad1e5ff14b4ebf2a9eb9"> 989</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#adb2d2f801618ad1e5ff14b4ebf2a9eb9">remmina_rdp_main_loop</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;{</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; DWORD status;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; gchar buf[100];</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">while</span> (!freerdp_shall_disconnect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>)) {</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; HANDLE handles[64]={0};</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; DWORD nCount = freerdp_get_event_handles(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context, &amp;handles[0], 64);</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a522c742a333cf0603dfa7d06a7376669">event_handle</a>)</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; handles[nCount++] = rfi-&gt;<a class="code" href="structrf__context.html#a522c742a333cf0603dfa7d06a7376669">event_handle</a>;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; handles[nCount++] = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context-&gt;abortEvent;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <span class="keywordflow">if</span> (nCount == 0) {</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;freerdp_get_event_handles failed\n&quot;</span>);</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; }</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; status = WaitForMultipleObjects(nCount, handles, FALSE, 100);</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keywordflow">if</span> (status == WAIT_FAILED) {</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;WaitForMultipleObjects failed with %lu\n&quot;</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)status);</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; }</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a522c742a333cf0603dfa7d06a7376669">event_handle</a> &amp;&amp; WaitForSingleObject(rfi-&gt;<a class="code" href="structrf__context.html#a522c742a333cf0603dfa7d06a7376669">event_handle</a>, 0) == WAIT_OBJECT_0) {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29">rf_process_event_queue</a>(gp)) {</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;Could not process local keyboard/mouse event queue\n&quot;</span>);</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <span class="keywordflow">if</span> (read(rfi-&gt;<a class="code" href="structrf__context.html#a539feef609228a91c5e54d5da837bb7a">event_pipe</a>[0], buf, <span class="keyword">sizeof</span>(buf))) {</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; }</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; }</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="comment">/* Check if a processed event called freerdp_abort_connect() and exit if true */</span></div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keywordflow">if</span> (WaitForSingleObject(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context-&gt;abortEvent, 0) == WAIT_OBJECT_0)</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="comment">/* Session disconnected by local user action */</span></div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">if</span> (!freerdp_check_event_handles(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context)) {</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="rdp__plugin_8c.html#a9f14eee602089f6ff152e1c93c44c3e9">rf_auto_reconnect</a>(rfi)) {</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <span class="comment">/* Reset the possible reason/error which made us doing many reconnection reattempts and continue */</span></div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, NULL);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; }</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">if</span> (freerdp_get_last_error(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context) == FREERDP_ERROR_SUCCESS)</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;Could not check FreeRDP file descriptor\n&quot;</span>);</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; }</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; }</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keyword">const</span> gchar *host = freerdp_settings_get_string (rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname);</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="comment">// TRANSLATORS: the placeholder may be either an IP/FQDN or a server hostname</span></div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; REMMINA_PLUGIN_AUDIT(_(<span class="stringliteral">&quot;Disconnected from %s via RDP&quot;</span>), host);</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; freerdp_disconnect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;RDP client disconnected&quot;</span>);</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;}</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div><div class="line"><a name="l01048"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a5d1951ac829e885ee7f4955195b5204a"> 1048</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rdp__plugin_8c.html#a5d1951ac829e885ee7f4955195b5204a">remmina_rdp_load_static_channel_addin</a>(rdpChannels *channels, rdpSettings *settings, <span class="keywordtype">char</span> *name, <span class="keywordtype">void</span> *data)</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;{</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; PVIRTUALCHANNELENTRY entry = NULL;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; PVIRTUALCHANNELENTRYEX entryEx = NULL;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; entryEx = (PVIRTUALCHANNELENTRYEX)(<span class="keywordtype">void</span> *)freerdp_load_channel_addin_entry(</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; name, NULL, NULL, FREERDP_ADDIN_CHANNEL_STATIC | FREERDP_ADDIN_CHANNEL_ENTRYEX);</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordflow">if</span> (!entryEx)</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; entry = freerdp_load_channel_addin_entry(name, NULL, NULL, FREERDP_ADDIN_CHANNEL_STATIC);</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="keywordflow">if</span> (entryEx) {</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordflow">if</span> (freerdp_channels_client_load_ex(channels, settings, entryEx, data) == 0) {</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;loading channel %s\n&quot;</span>, name);</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; }</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (entry) {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">if</span> (freerdp_channels_client_load(channels, settings, entry, data) == 0) {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;loading channel %s\n&quot;</span>, name);</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; }</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;}</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;</div><div class="line"><a name="l01075"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a32a408f4657dd9778d08923f8942e46a"> 1075</a></span>&#160;<span class="keyword">static</span> gchar *<a class="code" href="rdp__plugin_8c.html#a32a408f4657dd9778d08923f8942e46a">remmina_rdp_find_prdriver</a>(<span class="keywordtype">char</span> *smap, <span class="keywordtype">char</span> *prn)</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;{</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordtype">char</span> c, *p, *dr;</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordtype">int</span> matching;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordtype">size_t</span> sz;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keyword">enum</span> { S_WAITPR,</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; S_INPRINTER,</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; S_WAITCOLON,</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; S_WAITDRIVER,</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; S_INDRIVER,</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; S_WAITSEMICOLON } state = S_WAITPR;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; matching = 0;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">while</span> ((c = *smap++) != 0) {</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keywordflow">switch</span> (state) {</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keywordflow">case</span> S_WAITPR:</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">if</span> (c != <span class="charliteral">&#39;\&quot;&#39;</span>) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; state = S_INPRINTER;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; p = prn;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; matching = 1;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">case</span> S_INPRINTER:</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordflow">if</span> (matching &amp;&amp; c == *p &amp;&amp; *p != 0) {</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; p++;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\&quot;&#39;</span>) {</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">if</span> (*p != 0)</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; matching = 0;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; state = S_WAITCOLON;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; matching = 0;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; }</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordflow">case</span> S_WAITCOLON:</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">if</span> (c != <span class="charliteral">&#39;:&#39;</span>)</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; state = S_WAITDRIVER;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">case</span> S_WAITDRIVER:</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">if</span> (c != <span class="charliteral">&#39;\&quot;&#39;</span>)</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; state = S_INDRIVER;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; dr = smap;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keywordflow">case</span> S_INDRIVER:</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\&quot;&#39;</span>) {</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">if</span> (matching)</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">goto</span> found;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; state = S_WAITSEMICOLON;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; }</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">case</span> S_WAITSEMICOLON:</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">if</span> (c != <span class="charliteral">&#39;;&#39;</span>)</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; state = S_WAITPR;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; }</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;found:</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; sz = smap - dr;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; p = (<span class="keywordtype">char</span> *)malloc(sz);</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; memcpy(p, dr, sz);</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; p[sz - 1] = 0;</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">return</span> p;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;}</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="preprocessor">#ifdef HAVE_CUPS</span></div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a9f5c241426816e49f95982b9e3d6bddf"> 1150</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rdp__plugin_8c.html#a9f5c241426816e49f95982b9e3d6bddf">remmina_rdp_set_printers</a>(<span class="keywordtype">void</span> *user_data, <span class="keywordtype">unsigned</span> flags, cups_dest_t *dest)</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;{</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)user_data;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <span class="keyword">const</span> gchar *s = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;printer_overrides&quot;</span>);</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; RDPDR_PRINTER *printer;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; printer = (RDPDR_PRINTER *)calloc(1, <span class="keyword">sizeof</span>(RDPDR_PRINTER));</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; RDPDR_DEVICE *pdev;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; pdev = &amp;(printer-&gt;device);</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; RDPDR_PRINTER *pdev;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; pdev = printer;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; pdev-&gt;Type = RDPDR_DTYP_PRINT;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Printer Type: %d&quot;</span>, pdev-&gt;Type);</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectPrinters, TRUE);</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Destination: %s&quot;</span>, dest-&gt;name);</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; <span class="keywordflow">if</span> (!(pdev-&gt;Name = _strdup(dest-&gt;name))) {</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; free(printer);</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; }</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Printer Name: %s&quot;</span>, pdev-&gt;Name);</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">if</span> (s) {</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; gchar *d = <a class="code" href="rdp__plugin_8c.html#a32a408f4657dd9778d08923f8942e46a">remmina_rdp_find_prdriver</a>(strdup(s), pdev-&gt;Name);</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keywordflow">if</span> (d) {</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; printer-&gt;DriverName = strdup(d);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Printer DriverName set to: %s&quot;</span>, printer-&gt;DriverName);</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; g_free(d);</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; free(pdev-&gt;Name);</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; free(printer);</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; }</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="comment">/* We set to a default driver*/</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; printer-&gt;DriverName = _strdup(<span class="stringliteral">&quot;MS Publisher Imagesetter&quot;</span>);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; }</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Printer Driver: %s&quot;</span>, printer-&gt;DriverName);</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keywordflow">if</span> (!freerdp_device_collection_add(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, (RDPDR_DEVICE *)printer)) {</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; free(printer-&gt;DriverName);</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; free(pdev-&gt;Name);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; free(printer);</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; }</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;}</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_CUPS */</span><span class="preprocessor"></span></div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;<span class="comment">/* Send Ctrl+Alt+Del keystrokes to the plugin drawing_area widget */</span></div><div class="line"><a name="l01231"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a04920ffa78f21d63806d544fcca9c56e"> 1231</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#a04920ffa78f21d63806d544fcca9c56e">remmina_rdp_send_ctrlaltdel</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;{</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; guint keys[] = { GDK_KEY_Control_L, GDK_KEY_Alt_L, GDK_KEY_Delete };</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2d6704aa58ecc18ecc178ea418addd87">protocol_plugin_send_keys_signals</a>(rfi-&gt;<a class="code" href="structrf__context.html#acee2095e72fb2428c498f62e21800026">drawing_area</a>,</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; keys, G_N_ELEMENTS(keys), GDK_KEY_PRESS | GDK_KEY_RELEASE);</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;}</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;</div><div class="line"><a name="l01241"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a527c08af66797732d90664f342b5fa00"> 1241</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a527c08af66797732d90664f342b5fa00">remmina_rdp_set_connection_type</a>(rdpSettings *settings, guint32 type)</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;{</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_ConnectionType, type);</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="keywordflow">if</span> (type == CONNECTION_TYPE_MODEM) {</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, TRUE);</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, FALSE);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, FALSE);</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, TRUE);</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, TRUE);</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, TRUE);</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_BROADBAND_LOW) {</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, TRUE);</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, FALSE);</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, FALSE);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, TRUE);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, TRUE);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_SATELLITE) {</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, TRUE);</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, FALSE);</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, TRUE);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, TRUE);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_BROADBAND_HIGH) {</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, TRUE);</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, FALSE);</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, TRUE);</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, TRUE);</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_WAN) {</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, FALSE);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, TRUE);</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, FALSE);</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, FALSE);</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_LAN) {</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, FALSE);</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, TRUE);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, FALSE);</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, FALSE);</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_AUTODETECT) {</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, FALSE);</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, TRUE);</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, FALSE);</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, FALSE);</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_NetworkAutoDetect, TRUE);</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; <span class="comment">/* Automatically activate GFX and RFX codec support */</span></div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;<span class="preprocessor">#ifdef WITH_GFX_H264</span></div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_GfxAVC444, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_GfxH264, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_RemoteFxCodec, TRUE);</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == REMMINA_CONNECTION_TYPE_NONE) {</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; }</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;}</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 3, 0)</span></div><div class="line"><a name="l01314"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ae0449ecd9477c0361ae0d3ca928d8017"> 1314</a></span>&#160;<span class="keyword">static</span> gchar *<a class="code" href="rdp__plugin_8c.html#ae0449ecd9477c0361ae0d3ca928d8017">remmina_get_rdp_kbd_remap</a>(<span class="keyword">const</span> gchar *keymap)</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;{</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; guint *table;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; gchar keys[20];</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; gchar *rdp_kbd_remap = NULL;</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; gint i;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; Display *display;</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; table = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#add5c06ac9c7a5fb3b3459731ffc8e964">pref_keymap_get_table</a>(keymap);</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keywordflow">if</span> (!table)</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; <span class="keywordflow">return</span> rdp_kbd_remap;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; rdp_kbd_remap = g_malloc0(512);</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; display = XOpenDisplay(0);</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <span class="keywordflow">for</span> (i = 0; table[i] &gt; 0; i += 2) {</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; g_snprintf(keys, <span class="keyword">sizeof</span>(keys), <span class="stringliteral">&quot;0x%02x=0x%02x&quot;</span>, freerdp_keyboard_get_rdp_scancode_from_x11_keycode(XKeysymToKeycode(display, table[i])),</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; freerdp_keyboard_get_rdp_scancode_from_x11_keycode(XKeysymToKeycode(display, table[i + 1])));</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; <span class="keywordflow">if</span> (i &gt; 0)</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; g_strlcat(rdp_kbd_remap, <span class="stringliteral">&quot;,&quot;</span>, 512);</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; g_strlcat(rdp_kbd_remap, keys, 512);</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; }</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; XCloseDisplay(display);</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="keywordflow">return</span> rdp_kbd_remap;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;}</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;</div><div class="line"><a name="l01342"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0"> 1342</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0">remmina_rdp_main</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;{</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; <span class="keyword">const</span> gchar *s;</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; gchar *sm;</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; gchar *value;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <span class="keyword">const</span> gchar *cs;</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; rdpChannels *channels;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; gchar *gateway_host;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; gint gateway_port;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; gchar *datapath = NULL;</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; gboolean status = TRUE;</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; gchar *rdp_kbd_remap;</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; gint i;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; gint desktopOrientation, desktopScaleFactor, deviceScaleFactor;</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; channels = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context-&gt;channels;</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; datapath = g_build_path(<span class="stringliteral">&quot;/&quot;</span>,</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2919b48fd95b772b590b430a03ecb98f">file_get_user_datadir</a>(),</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="stringliteral">&quot;RDP&quot;</span>,</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; NULL);</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;RDP data path is %s&quot;</span>, datapath);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <span class="keywordflow">if</span> ((datapath != NULL) &amp;&amp; (datapath[0] != <span class="charliteral">&#39;\0&#39;</span>))</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <span class="keywordflow">if</span> (access(datapath, W_OK) == 0)</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ConfigPath, datapath);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; g_free(datapath);</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;<span class="preprocessor">#if defined(PROXY_TYPE_IGNORE)</span></div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <span class="keywordflow">if</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;useproxyenv&quot;</span>, FALSE) ? TRUE : FALSE) {</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Not using system proxy settings&quot;</span>);</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType, PROXY_TYPE_IGNORE);</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; }</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af">remmina_rdp_tunnel_init</a>(gp))</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AutoReconnectionEnabled, (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disableautoreconnect&quot;</span>, FALSE) ? FALSE : TRUE));</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <span class="comment">/* Disable RDP auto reconnection when SSH tunnel is enabled */</span></div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, FALSE))</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AutoReconnectionEnabled, FALSE);</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;colordepth&quot;</span>, 99));</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SoftwareGdi, TRUE);</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;gfx_h264_available: %d&quot;</span>, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; <span class="comment">/* Avoid using H.264 modes if they are not available on libfreerdp */</span></div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> &amp;&amp; (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 65 || freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth == 66)))</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 64); <span class="comment">// Fallback to GFX RFX</span></div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 0) {</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="comment">/* RFX (Win7)*/</span></div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec, TRUE);</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, FALSE);</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 63) {</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; <span class="comment">/* /gfx (RFX Progressive) (Win8) */</span></div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, FALSE);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, FALSE);</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 64) {</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="comment">/* /gfx:rfx (Win8) */</span></div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec, TRUE);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, FALSE);</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, FALSE);</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 65) {</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="comment">/* /gfx:avc420 (Win8.1) */</span></div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, FALSE);</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 66) {</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="comment">/* /gfx:avc444 (Win10) */</span></div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 99) {</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <span class="comment">/* Automatic (Let the server choose its best format) */</span></div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec, TRUE);</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; }</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec) ||</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NSCodec) ||</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline)) {</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathOutput, TRUE);</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FrameMarkerCommandEnabled, TRUE);</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a40e89e126e5dd96a3f67e6f945a8867b">bpp</a> = 32;</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; }</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; gint w = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#afe3c32a421cd5dcc735b99318ff8844a">get_profile_remote_width</a>(gp);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; gint h = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2b75137f9d7739c0d7881ee16e2aabfa">get_profile_remote_height</a>(gp);</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; <span class="comment">/* multiple of 4 */</span></div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; w = (w + 3) &amp; ~0x3;</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; h = (h + 3) &amp; ~0x3;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth, w);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight, h);</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Resolution set by the user: %dx%d&quot;</span>, w, h);</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; <span class="comment">/* Workaround for FreeRDP issue #5417: in GFX AVC modes we can&#39;t go under</span></div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;<span class="comment"> * AVC_MIN_DESKTOP_WIDTH x AVC_MIN_DESKTOP_HEIGHT */</span></div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline) &amp;&amp;</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264)) {</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth) &lt;</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; AVC_MIN_DESKTOP_WIDTH)</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth,</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; AVC_MIN_DESKTOP_WIDTH);</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>,</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; FreeRDP_DesktopHeight) &lt;</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; AVC_MIN_DESKTOP_HEIGHT)</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight,</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; AVC_MIN_DESKTOP_HEIGHT);</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; }</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; <span class="comment">/* Workaround for FreeRDP issue #5119. This will make our horizontal resolution</span></div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;<span class="comment"> * an even value, but it will add a vertical black 1 pixel line on the</span></div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;<span class="comment"> * right of the desktop */</span></div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; <span class="keywordflow">if</span> ((freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth) &amp; 1) != 0) {</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; UINT32 tmp = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth);</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth, tmp - 1);</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; }</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#abaf7f57e2336f6e5c257e9c30fedc047">protocol_plugin_set_width</a>(gp, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth));</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">protocol_plugin_set_height</a>(gp, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight));</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; w = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth);</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; h = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight);</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Resolution set after workarounds: %dx%d&quot;</span>, w, h);</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>))</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Username, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>));</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>))</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Domain, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>));</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; s = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; <span class="keywordflow">if</span> (s) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Password, s);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AutoLogonEnabled, TRUE);</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; gchar *proxy_type = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;proxy_type&quot;</span>));</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; gchar *proxy_username = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;proxy_username&quot;</span>));</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; gchar *proxy_password = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;proxy_password&quot;</span>));</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; gchar *proxy_hostname = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;proxy_hostname&quot;</span>));</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; gint proxy_port = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;proxy_port&quot;</span>, 80);</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_type: %s&quot;</span>, proxy_type);</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_username: %s&quot;</span>, proxy_username);</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_password: %s&quot;</span>, proxy_password);</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_hostname: %s&quot;</span>, proxy_hostname);</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_port: %d&quot;</span>, proxy_port);</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keywordflow">if</span> (proxy_type &amp;&amp; proxy_hostname) {</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(proxy_type, <span class="stringliteral">&quot;no_proxy&quot;</span>) == 0)</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType, PROXY_TYPE_IGNORE);</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(proxy_type, <span class="stringliteral">&quot;http&quot;</span>) == 0)</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType, PROXY_TYPE_HTTP);</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(proxy_type, <span class="stringliteral">&quot;socks5&quot;</span>) == 0)</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType, PROXY_TYPE_SOCKS);</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; g_warning(<span class="stringliteral">&quot;Invalid proxy protocol, at the moment only no_proxy, HTTP and SOCKS5 are supported&quot;</span>);</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;ProxyType set to: %&quot;</span> PRIu32, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType));</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyHostname, proxy_hostname);</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; <span class="keywordflow">if</span> (proxy_username)</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyUsername, proxy_username);</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="keywordflow">if</span> (proxy_password)</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyPassword, proxy_password);</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; <span class="keywordflow">if</span> (proxy_port)</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; freerdp_settings_set_uint16(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyPort, proxy_port);</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; }</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; g_free(proxy_hostname);</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; g_free(proxy_username);</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; g_free(proxy_password);</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;base-cred-for-gw&quot;</span>, FALSE)) {</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; <span class="comment">// Reset gateway credentials</span></div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>, NULL);</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>, NULL);</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>, NULL);</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; }</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; <span class="comment">/* Remote Desktop Gateway server address */</span></div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayEnabled, FALSE);</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; s = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_server&quot;</span>);</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; <span class="keywordflow">if</span> (s) {</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gwtransp&quot;</span>);</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 3, 1)</span></div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;websockets&quot;</span>, FALSE))</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpUseWebsockets, TRUE);</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpUseWebsockets, FALSE);</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;http&quot;</span>) == 0) {</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayRpcTransport, FALSE);</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpTransport, TRUE);</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;rpc&quot;</span>) == 0) {</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayRpcTransport, TRUE);</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpTransport, FALSE);</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;auto&quot;</span>) == 0) {</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayRpcTransport, TRUE);</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpTransport, TRUE);</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; }</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a6fdfd3063906f49157225f536537bb0f">get_server_port</a>(s, 443, &amp;gateway_host, &amp;gateway_port);</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHostname, gateway_host);</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPort, gateway_port);</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayEnabled, TRUE);</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, TRUE);</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; }</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; <span class="comment">/* Remote Desktop Gateway domain */</span></div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>)) {</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>));</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, FALSE);</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; }</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <span class="comment">/* Remote Desktop Gateway username */</span></div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>)) {</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>));</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, FALSE);</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; }</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="comment">/* Remote Desktop Gateway password */</span></div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; s = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>);</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; <span class="keywordflow">if</span> (s) {</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPassword, s);</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, FALSE);</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; }</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; <span class="comment">/* If no different credentials were provided for the Remote Desktop Gateway</span></div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;<span class="comment"> * use the same authentication credentials for the host */</span></div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayEnabled) &amp;&amp; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials)) {</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain, freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Domain));</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername, freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Username));</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPassword, freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Password));</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; }</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; <span class="comment">/* Remote Desktop Gateway usage */</span></div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayEnabled))</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; freerdp_set_gateway_usage_method(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>,</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;gateway_usage&quot;</span>, FALSE) ? TSC_PROXY_MODE_DETECT : TSC_PROXY_MODE_DIRECT);</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayAccessToken,</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gatewayaccesstoken&quot;</span>));</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AuthenticationLevel, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; remminafile, <span class="stringliteral">&quot;authentication level&quot;</span>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AuthenticationLevel)));</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="comment">/* Certificate ignore */</span></div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_IgnoreCertificate, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;cert_ignore&quot;</span>, 0));</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_OldLicenseBehaviour, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;old-license&quot;</span>, 0));</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AllowUnanouncedOrdersFromServer, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;relax-order-checks&quot;</span>, 0));</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GlyphSupportLevel, (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;glyph-cache&quot;</span>, 0) ? GLYPH_SUPPORT_FULL : GLYPH_SUPPORT_NONE));</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; <span class="keywordflow">if</span> ((cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;clientname&quot;</span>)))</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ClientHostname, cs);</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ClientHostname, g_get_host_name());</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; <span class="comment">/* Client Build number is optional, if not specified defaults to 0, allow for comments to appear after number */</span></div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; <span class="keywordflow">if</span> ((cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;clientbuild&quot;</span>))) {</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="keywordflow">if</span> (*cs) {</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; UINT32 val = strtoul(cs, NULL, 0);</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ClientBuild, val);</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; }</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; }</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;loadbalanceinfo&quot;</span>)) {</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; <span class="keywordtype">char</span> *tmp = strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;loadbalanceinfo&quot;</span>));</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;LoadBalanceInfo = (BYTE *)tmp;</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_LoadBalanceInfoLength, strlen(tmp));</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; }</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;exec&quot;</span>))</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AlternateShell, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;exec&quot;</span>));</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;execpath&quot;</span>))</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ShellWorkingDirectory, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;execpath&quot;</span>));</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; sm = g_strdup_printf(<span class="stringliteral">&quot;rdp_quality_%i&quot;</span>, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;quality&quot;</span>, DEFAULT_QUALITY_0));</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; value = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">pref_get_value</a>(sm);</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; g_free(sm);</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <span class="keywordflow">if</span> (value &amp;&amp; value[0]) {</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, strtoul(value, NULL, 16));</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; <span class="keywordflow">switch</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;quality&quot;</span>, DEFAULT_QUALITY_0)) {</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <span class="keywordflow">case</span> 9:</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, DEFAULT_QUALITY_9);</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, DEFAULT_QUALITY_2);</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, DEFAULT_QUALITY_1);</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, DEFAULT_QUALITY_0);</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; }</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; }</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; g_free(value);</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; <span class="keywordflow">if</span> ((cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;network&quot;</span>))) {</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; guint32 type = 0;</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;modem&quot;</span>) == 0)</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; type = CONNECTION_TYPE_MODEM;</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;broadband&quot;</span>) == 0)</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; type = CONNECTION_TYPE_BROADBAND_HIGH;</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;broadband-low&quot;</span>) == 0)</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; type = CONNECTION_TYPE_BROADBAND_LOW;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;broadband-high&quot;</span>) == 0)</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; type = CONNECTION_TYPE_BROADBAND_HIGH;</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;wan&quot;</span>) == 0)</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; type = CONNECTION_TYPE_WAN;</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;lan&quot;</span>) == 0)</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; type = CONNECTION_TYPE_LAN;</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((g_strcmp0(cs, <span class="stringliteral">&quot;autodetect&quot;</span>) == 0))</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; type = CONNECTION_TYPE_AUTODETECT;</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((g_strcmp0(cs, <span class="stringliteral">&quot;none&quot;</span>) == 0))</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; type = REMMINA_CONNECTION_TYPE_NONE;</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; type = REMMINA_CONNECTION_TYPE_NONE;</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#a527c08af66797732d90664f342b5fa00">remmina_rdp_set_connection_type</a>(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, type))</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Network settings not set&quot;</span>);</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; }</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; <span class="comment">/* PerformanceFlags bitmask need also to be splitted into BOOL variables</span></div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;<span class="comment"> * like freerdp_settings_set_bool(rfi-&gt;settings, FreeRDP_DisableWallpaper, freerdp_settings_set_bool(rfi-&gt;settings, FreeRDP_AllowFontSmoothing…</span></div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;<span class="comment"> * or freerdp_get_param_bool() function will return the wrong value</span></div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; freerdp_performance_flags_split(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>);</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 3, 0)</span></div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; rdp_kbd_remap = <a class="code" href="rdp__plugin_8c.html#ae0449ecd9477c0361ae0d3ca928d8017">remmina_get_rdp_kbd_remap</a>(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;keymap&quot;</span>));</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; <span class="keywordflow">if</span> (rdp_kbd_remap != NULL) {</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_KeyboardRemappingList, rdp_kbd_remap);</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;rdp_keyboard_remapping_list: %s&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;KeyboardRemappingList);</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; g_free(rdp_kbd_remap);</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; }</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_KeyboardRemappingList, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">pref_get_value</a>(<span class="stringliteral">&quot;rdp_kbd_remap&quot;</span>));</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;rdp_keyboard_remapping_list: %s&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;KeyboardRemappingList);</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; }</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_KeyboardLayout, <a class="code" href="rdp__settings_8c.html#a4052ab6359b14e8f9a4cf76bed4da90c">remmina_rdp_settings_get_keyboard_layout</a>());</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;console&quot;</span>, FALSE))</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ConsoleSession, TRUE);</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;restricted-admin&quot;</span>, FALSE)) {</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ConsoleSession, TRUE);</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RestrictedAdminModeRequired, TRUE);</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; }</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;pth&quot;</span>)) {</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ConsoleSession, TRUE);</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RestrictedAdminModeRequired, TRUE);</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PasswordHash, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;pth&quot;</span>));</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4da50fa364ddf1fcf22def341f61a7cb">file_set_int</a>(remminafile, <span class="stringliteral">&quot;restricted-admin&quot;</span>, TRUE);</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; }</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;security&quot;</span>);</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;rdp&quot;</span>) == 0) {</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RdpSecurity, TRUE);</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecurity, FALSE);</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NlaSecurity, FALSE);</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ExtSecurity, FALSE);</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseRdpSecurityLayer, TRUE);</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;tls&quot;</span>) == 0) {</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RdpSecurity, FALSE);</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecurity, TRUE);</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NlaSecurity, FALSE);</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ExtSecurity, FALSE);</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;nla&quot;</span>) == 0) {</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RdpSecurity, FALSE);</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecurity, FALSE);</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NlaSecurity, TRUE);</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ExtSecurity, FALSE);</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;ext&quot;</span>) == 0) {</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RdpSecurity, FALSE);</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecurity, FALSE);</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NlaSecurity, FALSE);</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ExtSecurity, TRUE);</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160; <span class="comment">/* This is &quot;-nego&quot; switch of xfreerdp */</span></div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NegotiateSecurityLayer, TRUE);</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; }</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;tls-seclevel&quot;</span>);</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; <span class="keywordflow">if</span> (cs &amp;&amp; g_strcmp0(cs,<span class="stringliteral">&quot;&quot;</span>)!=0) {</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; i = atoi(cs);</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecLevel, i);</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; }</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_CompressionEnabled, TRUE);</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disable_fastpath&quot;</span>, FALSE)) {</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathInput, FALSE);</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathOutput, FALSE);</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathInput, TRUE);</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathOutput, TRUE);</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; }</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; <span class="comment">/* Orientation and scaling settings */</span></div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; <a class="code" href="rdp__settings_8c.html#a5f05047cf10611ffb7a23a248650cb4c">remmina_rdp_settings_get_orientation_scale_prefs</a>(&amp;desktopOrientation, &amp;desktopScaleFactor, &amp;deviceScaleFactor);</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; freerdp_settings_set_uint16(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopOrientation, desktopOrientation);</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="keywordflow">if</span> (desktopScaleFactor != 0 &amp;&amp; deviceScaleFactor != 0) {</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopScaleFactor, desktopScaleFactor);</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceScaleFactor, deviceScaleFactor);</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; }</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; <span class="comment">/* Try to enable &quot;Display Control Virtual Channel Extension&quot;, needed to</span></div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;<span class="comment"> * dynamically resize remote desktop. This will automatically open</span></div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;<span class="comment"> * the &quot;disp&quot; dynamic channel, if available */</span></div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportDisplayControl, TRUE);</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportDisplayControl)) {</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; CLPARAM *d[1];</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <span class="keywordtype">int</span> dcount;</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160; dcount = 1;</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160; d[0] = <span class="stringliteral">&quot;disp&quot;</span>;</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, dcount, d);</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; }</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline)) {</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; CLPARAM *d[1];</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; <span class="keywordtype">int</span> dcount;</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; dcount = 1;</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; d[0] = <span class="stringliteral">&quot;rdpgfx&quot;</span>;</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, dcount, d);</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160; }</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; <span class="comment">/* Sound settings */</span></div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;sound&quot;</span>);</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;remote&quot;</span>) == 0) {</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteConsoleAudio, TRUE);</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_has_prefix(cs, <span class="stringliteral">&quot;local&quot;</span>)) {</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AudioPlayback, TRUE);</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AudioCapture, TRUE);</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; <span class="comment">/* Disable sound */</span></div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AudioPlayback, FALSE);</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteConsoleAudio, FALSE);</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; }</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;microphone&quot;</span>);</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;0&quot;</span>) == 0) {</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;“microphone” was set to 0, setting to \&quot;\&quot;&quot;</span>);</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;microphone&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AudioCapture, TRUE);</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;“microphone” set to “%s”&quot;</span>, cs);</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="stringliteral">&quot;audin&quot;</span>, g_strdup(cs), &amp;count);</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; g_free(p);</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; }</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160; }</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;audio-output&quot;</span>);</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;audio output set to %s&quot;</span>, cs);</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="stringliteral">&quot;rdpsnd&quot;</span>, g_strdup(cs), &amp;count);</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160; status = freerdp_client_add_static_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160; <span class="keywordflow">if</span> (status)</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; status = freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160; g_free(p);</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160; }</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;freerdp_log_level&quot;</span>);</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Log level set to to %s&quot;</span>, cs);</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; cs = g_strdup(<span class="stringliteral">&quot;INFO&quot;</span>);</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; wLog *root = WLog_GetRoot();</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; WLog_SetStringLogLevel(root, cs);</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;freerdp_log_filters&quot;</span>);</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Log filters set to to %s&quot;</span>, cs);</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; WLog_AddStringLogFilters(cs);</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160; WLog_AddStringLogFilters(NULL);</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; }</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;usb&quot;</span>);</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="stringliteral">&quot;urbdrc&quot;</span>, g_strdup(cs), &amp;count);</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; g_free(p);</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; }</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;vc&quot;</span>);</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f">remmina_rdp_CommandLineParseCommaSeparatedValues</a>(g_strdup(cs), &amp;count);</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; freerdp_client_add_static_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; g_free(p);</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; }</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;dvc&quot;</span>);</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f">remmina_rdp_CommandLineParseCommaSeparatedValues</a>(g_strdup(cs), &amp;count);</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160; g_free(p);</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; }</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;rdp2tcp&quot;</span>);</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160; g_free(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;RDP2TCPArgs);</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;RDP2TCPArgs = g_strdup(cs);</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;rdp2tcp set to %s&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;RDP2TCPArgs);</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <a class="code" href="rdp__plugin_8c.html#a5d1951ac829e885ee7f4955195b5204a">remmina_rdp_load_static_channel_addin</a>(channels, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, <span class="stringliteral">&quot;rdp2tcp&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;RDP2TCPArgs);</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; }</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; <span class="keywordtype">int</span> vermaj, vermin, verrev;</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160; freerdp_get_version(&amp;vermaj, &amp;vermin, &amp;verrev);</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 1, 0)</span></div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;timeout&quot;</span>);</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; <span class="keyword">const</span> gchar *endptr = NULL;</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; guint64 val = g_ascii_strtoull(cs, (gchar **)&amp;endptr, 10);</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; <span class="keywordflow">if</span> (val &gt; 600000 || val &lt;= 0)</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; val = 600000;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TcpAckTimeout, (UINT32)val);</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; }</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;preferipv6&quot;</span>, FALSE) ? TRUE : FALSE)</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PreferIPv6OverIPv4, TRUE);</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectClipboard, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disableclipboard&quot;</span>, FALSE) ? FALSE : TRUE);</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;sharefolder&quot;</span>);</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; gchar *ccs = g_strdup(cs);</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[Deprecated-&gt;migrating] - Old sharefolder %s to \&quot;drive \&quot;&quot;</span>, ccs);</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; <span class="keywordflow">if</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;drive&quot;</span>)) {</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;drive&quot;</span>, g_strdup(ccs));</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;sharefolder&quot;</span>, NULL);</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[Deprecated-&gt;migrated] - drive set to %s&quot;</span>, g_strdup(ccs));</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; }</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; g_free(ccs);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <span class="comment">//CLPARAM **p;</span></div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; <span class="comment">//size_t count;</span></div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; <span class="comment">//p = remmina_rdp_CommandLineParseCommaSeparatedValuesEx(&quot;drive&quot;, g_strdup(cs), &amp;count);</span></div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; <span class="comment">//status = freerdp_client_add_device_channel(rfi-&gt;settings, count, p);</span></div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; <span class="comment">//g_free(p);</span></div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; }</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;drive&quot;</span>);</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Redirect directory set to %s&quot;</span>, cs);</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; gchar **folders = g_strsplit(cs, <span class="stringliteral">&quot;;&quot;</span>, -1);</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <span class="keywordflow">for</span> (i = 0; folders[i] != NULL; i++) {</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Parsing folder %s&quot;</span>, folders[i]);</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="stringliteral">&quot;drive&quot;</span>, g_strdup(folders[i]), &amp;count);</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; status = freerdp_client_add_device_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; g_free(p);</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; }</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; g_strfreev(folders);</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; }</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;shareprinter&quot;</span>, FALSE)) {</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;<span class="preprocessor">#ifdef HAVE_CUPS</span></div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Sharing printers&quot;</span>);</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; <span class="keyword">const</span> gchar *po = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;printer_overrides&quot;</span>);</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; <span class="keywordflow">if</span> (po &amp;&amp; po[0] != 0) {</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; <span class="comment">/* Fallback to remmina code to override print drivers */</span></div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <span class="keywordflow">if</span> (cupsEnumDests(CUPS_DEST_FLAGS_NONE, 1000, NULL, 0, 0, <a class="code" href="rdp__plugin_8c.html#a9f5c241426816e49f95982b9e3d6bddf">remmina_rdp_set_printers</a>, rfi))</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;All printers have been shared&quot;</span>);</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Cannot share printers, are there any available?&quot;</span>);</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; <span class="comment">/* Use libfreerdp code to map all printers */</span></div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; CLPARAM *d[1];</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <span class="keywordtype">int</span> dcount;</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; dcount = 1;</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; d[0] = <span class="stringliteral">&quot;printer&quot;</span>;</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; freerdp_client_add_device_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, dcount, d);</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; }</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_CUPS */</span><span class="preprocessor"></span></div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; }</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;span&quot;</span>, FALSE)) {</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SpanMonitors, TRUE);</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseMultimon, TRUE);</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Fullscreen, TRUE);</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4da50fa364ddf1fcf22def341f61a7cb">file_set_int</a>(remminafile, <span class="stringliteral">&quot;multimon&quot;</span>, 1);</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; }</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;multimon&quot;</span>, FALSE)) {</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; guint32 maxwidth = 0;</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; guint32 maxheight = 0;</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; gchar *monitorids;</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; guint32 i;</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseMultimon, TRUE);</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; <span class="comment">/* TODO Add an option for this */</span></div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ForceMultimon, TRUE);</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Fullscreen, TRUE);</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; gchar *monitorids_string = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;monitorids&quot;</span>));</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="comment">/* Otherwise we get all the attached monitors</span></div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;<span class="comment"> * monitorids may contains desktop orientation values.</span></div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;<span class="comment"> * But before we check if there are orientation attributes</span></div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; <span class="keywordflow">if</span> (monitorids_string != NULL &amp;&amp; monitorids_string[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <span class="keywordflow">if</span> (g_strstr_len(monitorids_string, -1, <span class="stringliteral">&quot;,&quot;</span>) != NULL) {</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; <span class="keywordflow">if</span> (g_strstr_len(monitorids_string, -1, <span class="stringliteral">&quot;:&quot;</span>) != NULL) {</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; rdpMonitor *base = (rdpMonitor *)freerdp_settings_get_pointer(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorDefArray);</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; <span class="comment">/* We have an ID and an orientation degree */</span></div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; gchar **temp_items;</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; gchar **rot_items;</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; temp_items = g_strsplit(monitorids_string, <span class="stringliteral">&quot;,&quot;</span>, -1);</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; g_strv_length(temp_items); i++) {</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; rot_items = g_strsplit(temp_items[i], <span class="stringliteral">&quot;:&quot;</span>, -1);</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; rdpMonitor *current = &amp;base[atoi(rot_items[0])];</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; <span class="keywordflow">if</span> (i == 0)</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; monitorids = g_strdup(rot_items[0]);</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; monitorids = g_strdup_printf(<span class="stringliteral">&quot;%s,%s&quot;</span>, monitorids, rot_items[0]);</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; current-&gt;attributes.orientation = atoi(rot_items[1]);</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor n %d orientation: %d&quot;</span>, i, current-&gt;attributes.orientation);</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; }</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; monitorids = g_strdup(monitorids_string);</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; }</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; monitorids = g_strdup(monitorids_string);</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; }</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; monitorids = g_strdup(monitorids_string);</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; }</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; <a class="code" href="rdp__monitor_8c.html#aa5969439ce0342765baea33fcf396940">remmina_rdp_monitor_get</a>(rfi, &amp;monitorids, &amp;maxwidth, &amp;maxheight);</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; <span class="keywordflow">if</span> (monitorids != NULL &amp;&amp; monitorids[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; UINT32 *base = (UINT32 *)freerdp_settings_get_pointer(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorIds);</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; gchar **items;</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; items = g_strsplit(monitorids, <span class="stringliteral">&quot;,&quot;</span>, -1);</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NumMonitorIds, g_strv_length(items));</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;NumMonitorIds: %d&quot;</span>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NumMonitorIds));</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; g_strv_length(items); i++) {</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; UINT32 *current = &amp;base[i];</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; *current = atoi(items[i]);</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Added monitor with ID %&quot;</span> PRIu32, *current);</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; }</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; g_free(monitorids);</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; g_strfreev(items);</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; }</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; <span class="keywordflow">if</span> (maxwidth &amp;&amp; maxheight) {</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Setting DesktopWidth and DesktopHeight to: %dx%d&quot;</span>, maxwidth, maxheight);</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth, maxwidth);</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight, maxheight);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;DesktopWidth and DesktopHeight set to: %dx%d&quot;</span>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth), freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight));</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Cannot set Desktop Size, we are using the previously set values: %dx%d&quot;</span>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth), freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight));</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; }</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#abaf7f57e2336f6e5c257e9c30fedc047">protocol_plugin_set_width</a>(gp, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth));</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">protocol_plugin_set_height</a>(gp, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight));</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; }</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; <span class="keyword">const</span> gchar *sn = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;smartcardname&quot;</span>);</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;sharesmartcard&quot;</span>, FALSE) ||</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; (sn != NULL &amp;&amp; sn[0] != <span class="charliteral">&#39;\0&#39;</span>)) {</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; RDPDR_SMARTCARD *smartcard;</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; smartcard = (RDPDR_SMARTCARD *)calloc(1, <span class="keyword">sizeof</span>(RDPDR_SMARTCARD));</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; RDPDR_DEVICE *sdev;</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; sdev = &amp;(smartcard-&gt;device);</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; RDPDR_SMARTCARD *sdev;</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; sdev = smartcard;</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; sdev-&gt;Type = RDPDR_DTYP_SMARTCARD;</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; <span class="keywordflow">if</span> (sn != NULL &amp;&amp; sn[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; sdev-&gt;Name = _strdup(sn);</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectSmartCards, TRUE);</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; freerdp_device_collection_add(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, (RDPDR_DEVICE *)smartcard);</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; }</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;passwordispin&quot;</span>, FALSE))</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; <span class="comment">/* Option works only combined with Username and Domain, because FreeRDP</span></div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;<span class="comment"> * doesn’t know anything about info on smart card */</span></div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PasswordIsSmartcardPin, TRUE);</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="comment">/* /serial[:&lt;name&gt;[,&lt;path&gt;[,&lt;driver&gt;[,permissive]]]] */</span></div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;shareserial&quot;</span>, FALSE)) {</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; RDPDR_SERIAL *serial;</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; serial = (RDPDR_SERIAL *)calloc(1, <span class="keyword">sizeof</span>(RDPDR_SERIAL));</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; RDPDR_DEVICE *sdev;</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; sdev = &amp;(serial-&gt;device);</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; RDPDR_SERIAL *sdev;</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; sdev = serial;</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; sdev-&gt;Type = RDPDR_DTYP_SERIAL;</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; <span class="keyword">const</span> gchar *sn = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;serialname&quot;</span>);</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; <span class="keywordflow">if</span> (sn != NULL &amp;&amp; sn[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; sdev-&gt;Name = _strdup(sn);</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; <span class="keyword">const</span> gchar *sd = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;serialdriver&quot;</span>);</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; <span class="keywordflow">if</span> (sd != NULL &amp;&amp; sd[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160; serial-&gt;Driver = _strdup(sd);</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; <span class="keyword">const</span> gchar *sp = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;serialpath&quot;</span>);</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; <span class="keywordflow">if</span> (sp != NULL &amp;&amp; sp[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; serial-&gt;Path = _strdup(sp);</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;serialpermissive&quot;</span>, FALSE))</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; serial-&gt;Permissive = _strdup(<span class="stringliteral">&quot;permissive&quot;</span>);</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectSerialPorts, TRUE);</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; freerdp_device_collection_add(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, (RDPDR_DEVICE *)serial);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; }</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;shareparallel&quot;</span>, FALSE)) {</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; RDPDR_PARALLEL *parallel;</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; parallel = (RDPDR_PARALLEL *)calloc(1, <span class="keyword">sizeof</span>(RDPDR_PARALLEL));</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160; RDPDR_DEVICE *pdev;</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160; pdev = &amp;(parallel-&gt;device);</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; RDPDR_PARALLEL *pdev;</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; pdev = parallel;</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; pdev-&gt;Type = RDPDR_DTYP_PARALLEL;</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectParallelPorts, TRUE);</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; <span class="keyword">const</span> gchar *pn = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;parallelname&quot;</span>);</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; <span class="keywordflow">if</span> (pn != NULL &amp;&amp; pn[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; pdev-&gt;Name = _strdup(pn);</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; <span class="keyword">const</span> gchar *dp = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;parallelpath&quot;</span>);</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160; <span class="keywordflow">if</span> (dp != NULL &amp;&amp; dp[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; parallel-&gt;Path = _strdup(dp);</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; freerdp_device_collection_add(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, (RDPDR_DEVICE *)parallel);</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160; }</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;multitransport&quot;</span>, FALSE)) {</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportMultitransport, TRUE);</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MultitransportFlags,</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160; (TRANSPORT_TYPE_UDP_FECR | TRANSPORT_TYPE_UDP_FECL | TRANSPORT_TYPE_UDP_PREFERRED));</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MultitransportFlags, 0);</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160; }</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; <span class="comment">/* If needed, force interactive authentication by deleting all authentication fields,</span></div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;<span class="comment"> * forcing libfreerdp to call our callbacks for authentication.</span></div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;<span class="comment"> * This usually happens from a second attempt of connection, never on the 1st one. */</span></div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a>) {</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Username, NULL);</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Password, NULL);</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Domain, NULL);</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain, NULL);</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername, NULL);</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPassword, NULL);</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, FALSE);</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; }</div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160; gboolean orphaned;</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; <span class="keywordflow">if</span> (!freerdp_connect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>)) {</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; orphaned = (GET_PLUGIN_DATA(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>) == NULL);</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; <span class="keywordflow">if</span> (!orphaned) {</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; UINT32 e;</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; e = freerdp_get_last_error(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context);</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; <span class="keywordflow">switch</span> (e) {</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_AUTHENTICATION_FAILED:</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; <span class="keywordflow">case</span> STATUS_LOGON_FAILURE: <span class="comment">// wrong return code from FreeRDP introduced at the end of July 2016? (fixed with b86c0ba)</span></div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_LOGON_FAILURE</span></div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_LOGON_FAILURE:</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; <span class="comment">/* Logon failure, will retry with interactive authentication */</span></div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a> = TRUE;</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160; <span class="keywordflow">case</span> STATUS_ACCOUNT_LOCKED_OUT:</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_ACCOUNT_LOCKED_OUT</span></div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_ACCOUNT_LOCKED_OUT:</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nAccount locked out.&quot;</span>),</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; <span class="keywordflow">case</span> STATUS_ACCOUNT_EXPIRED:</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_ACCOUNT_EXPIRED</span></div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_ACCOUNT_EXPIRED:</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nAccount expired.&quot;</span>),</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160; <span class="keywordflow">case</span> STATUS_PASSWORD_EXPIRED:</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_PASSWORD_EXPIRED</span></div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_PASSWORD_EXPIRED:</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nPassword expired.&quot;</span>),</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160; <span class="keywordflow">case</span> STATUS_ACCOUNT_DISABLED:</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_ACCOUNT_DISABLED</span></div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_ACCOUNT_DISABLED:</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nAccount disabled.&quot;</span>),</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_SERVER_INSUFFICIENT_PRIVILEGES</span></div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160; <span class="comment">/* https://msdn.microsoft.com/en-us/library/ee392247.aspx */</span></div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_SERVER_INSUFFICIENT_PRIVILEGES:</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nInsufficient user privileges.&quot;</span>),</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160; <span class="keywordflow">case</span> STATUS_ACCOUNT_RESTRICTION:</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_ACCOUNT_RESTRICTION</span></div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_ACCOUNT_RESTRICTION:</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nAccount restricted.&quot;</span>),</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160; <span class="keywordflow">case</span> STATUS_PASSWORD_MUST_CHANGE:</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_PASSWORD_MUST_CHANGE</span></div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_PASSWORD_MUST_CHANGE:</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nChange user password before connecting.&quot;</span>),</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_FAILED:</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Lost connection to the RDP server “%s”.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_DNS_NAME_NOT_FOUND:</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not find the address for the RDP server “%s”.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_TLS_CONNECT_FAILED:</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp,</div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160; _(<span class="stringliteral">&quot;Could not connect to the RDP server “%s” via TLS. See the DEBUG traces from a terminal for more information.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_SECURITY_NEGO_CONNECT_FAILED:</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; <span class="comment">// TRANSLATORS: the placeholder may be either an IP/FQDN or a server hostname</span></div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Unable to establish a connection to the RDP server “%s”. Check “Security protocol negotiation”.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_POST_CONNECT_FAILED</span></div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_POST_CONNECT_FAILED:</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160; <span class="comment">/* remmina_rdp_post_connect() returned FALSE to libfreerdp. We saved the error on rfi-&gt;postconnect_error */</span></div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160; <span class="keywordflow">switch</span> (rfi-&gt;<a class="code" href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">postconnect_error</a>) {</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160; <span class="keywordflow">case</span> REMMINA_POSTCONNECT_ERROR_OK:</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160; <span class="comment">/* We should never come here */</span></div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Cannot connect to the RDP server “%s”.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160; <span class="keywordflow">case</span> REMMINA_POSTCONNECT_ERROR_GDI_INIT:</div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not start libfreerdp-gdi.&quot;</span>));</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160; <span class="keywordflow">case</span> REMMINA_POSTCONNECT_ERROR_NO_H264:</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;You requested a H.264 GFX mode for the server “%s”, but your libfreerdp does not support H.264. Please use a non-AVC colour depth setting.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; }</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_SERVER_DENIED_CONNECTION</span></div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_SERVER_DENIED_CONNECTION:</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;The “%s” server refused the connection.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; <span class="keywordflow">case</span> 0x800759DB:</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160; <span class="comment">// E_PROXY_NAP_ACCESSDENIED https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tsgu/84cd92e4-592c-4219-95d8-18021ac654b0</span></div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;The Remote Desktop Gateway “%s” denied the user “%s\\%s” access due to policy.&quot;</span>),</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHostname), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername));</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_NO_OR_MISSING_CREDENTIALS:</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#acacad775c2c168f900deaa6c90481319">user_cancelled</a> = TRUE;</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;</div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; g_printf(<span class="stringliteral">&quot;libfreerdp returned code is %08X\n&quot;</span>, e);</div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Cannot connect to the “%s” RDP server.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; }</div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160; }</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; }</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160; <span class="keywordflow">if</span> (GET_PLUGIN_DATA(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>) == NULL) orphaned = <span class="keyword">true</span>; <span class="keywordflow">else</span> orphaned = <span class="keyword">false</span>;</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160; <span class="keywordflow">if</span> (!orphaned &amp;&amp; freerdp_get_last_error(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context) == FREERDP_ERROR_SUCCESS &amp;&amp; !rfi-&gt;<a class="code" href="structrf__context.html#acacad775c2c168f900deaa6c90481319">user_cancelled</a>)</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160; <a class="code" href="rdp__plugin_8c.html#adb2d2f801618ad1e5ff14b4ebf2a9eb9">remmina_rdp_main_loop</a>(gp);</div><div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;</div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;}</div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;</div><div class="line"><a name="l02305"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af22c947a2ae21ce29170be003585e06b"> 2305</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#af22c947a2ae21ce29170be003585e06b">rfi_uninit</a>(<a class="code" href="structrf__context.html">rfContext</a> *rfi)</div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;{</div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; freerdp *instance;</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;</div><div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160; instance = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>;</div><div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160;</div><div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>) {</div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa574515edb4966117f539d26e26f0a62">thread_cancelled</a> = TRUE; <span class="comment">// Avoid all rf_queue function to run</span></div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; pthread_cancel(rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>);</div><div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>)</div><div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160; pthread_join(rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>, NULL);</div><div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; }</div><div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;</div><div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160; <span class="keywordflow">if</span> (instance) {</div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a>) {</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; freerdp_abort_connect(instance);</div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160; }</div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; }</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;</div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160; <span class="keywordflow">if</span> (instance) {</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; RDP_CLIENT_ENTRY_POINTS *pEntryPoints = instance-&gt;pClientEntryPoints;</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160; <span class="keywordflow">if</span> (pEntryPoints)</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160; IFCALL(pEntryPoints-&gt;GlobalUninit);</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160; free(instance-&gt;pClientEntryPoints);</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160; freerdp_context_free(instance); <span class="comment">/* context is rfContext* rfi */</span></div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160; freerdp_free(instance); <span class="comment">/* This implicitly frees instance-&gt;context and rfi is no longer valid */</span></div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160; }</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;}</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;</div><div class="line"><a name="l02335"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a6aa88468d17f574532ca959f554a70c5"> 2335</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a6aa88468d17f574532ca959f554a70c5">complete_cleanup_on_main_thread</a>(gpointer data)</div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;{</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160; gboolean orphaned;</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)data;</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;</div><div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; <a class="code" href="rdp__cliprdr_8c.html#a4da95b96bf2c86b8f4cc63dcafdd1365">remmina_rdp_clipboard_free</a>(rfi);</div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160; gdi_free(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>);</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;</div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160; <span class="keywordflow">if</span> (GET_PLUGIN_DATA(gp) == NULL) orphaned = <span class="keyword">true</span>; <span class="keywordflow">else</span> orphaned = <span class="keyword">false</span>;</div><div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160;</div><div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160; <a class="code" href="rdp__cliprdr_8c.html#a7d911246d8a6efed5a64b7ecd7b059bf">remmina_rdp_cliprdr_detach_owner</a>(gp);</div><div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160; <span class="keywordflow">if</span> (!orphaned) <a class="code" href="rdp__event_8c.html#a65eef99dc99f77be815a5da804ed94fc">remmina_rdp_event_uninit</a>(gp);</div><div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160; <span class="keywordflow">if</span> (!orphaned) g_object_steal_data(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>);</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160; <a class="code" href="rdp__plugin_8c.html#af22c947a2ae21ce29170be003585e06b">rfi_uninit</a>(rfi);</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160; <span class="comment">/* Notify the RemminaProtocolWidget that we closed our connection, and the GUI interface</span></div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;<span class="comment"> * can be removed */</span></div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160; <span class="keywordflow">if</span> (!orphaned)</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(gp);</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;</div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160; <span class="keywordflow">return</span> G_SOURCE_REMOVE;</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;}</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;</div><div class="line"><a name="l02365"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54"> 2365</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54">remmina_rdp_main_thread</a>(gpointer data)</div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;{</div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160; pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160; CANCEL_ASYNC</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; gp = (<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)data;</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a> = FALSE;</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160; <span class="keywordflow">do</span></div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160; <a class="code" href="rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0">remmina_rdp_main</a>(gp);</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160; <span class="keywordflow">while</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#abfb79da3d96ca4aa219eae9c73b0b53f">protocol_plugin_has_error</a>(gp) &amp;&amp; rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a> == TRUE &amp;&amp; !rfi-&gt;<a class="code" href="structrf__context.html#acacad775c2c168f900deaa6c90481319">user_cancelled</a>);</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a> = 0;</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160; <span class="comment">/* cleanup */</span></div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160; g_idle_add(<a class="code" href="rdp__plugin_8c.html#a6aa88468d17f574532ca959f554a70c5">complete_cleanup_on_main_thread</a>, (gpointer)rfi);</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;</div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;}</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;</div><div class="line"><a name="l02392"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309"> 2392</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;{</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160; freerdp *instance;</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160; instance = freerdp_new();</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160; instance-&gt;PreConnect = <a class="code" href="rdp__plugin_8c.html#a0bc4113554537fd1a9e4c8bb9201e789">remmina_rdp_pre_connect</a>;</div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160; instance-&gt;PostConnect = <a class="code" href="rdp__plugin_8c.html#ac8d1ec82167ad20b7634ed545d4badbc">remmina_rdp_post_connect</a>;</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160; instance-&gt;PostDisconnect = <a class="code" href="rdp__plugin_8c.html#ab9e7535ac53b25e8923a3b9fd1622046">remmina_rdp_post_disconnect</a>;</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160; instance-&gt;Authenticate = <a class="code" href="rdp__plugin_8c.html#af33e88ae9c13745eb6d36f36418e3676">remmina_rdp_authenticate</a>;</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160; instance-&gt;GatewayAuthenticate = <a class="code" href="rdp__plugin_8c.html#a71166233c6c9e4714cbdb0d74ce7c579">remmina_rdp_gw_authenticate</a>;</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160; <span class="comment">//instance-&gt;VerifyCertificate = remmina_rdp_verify_certificate;</span></div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160; instance-&gt;VerifyCertificateEx = <a class="code" href="rdp__plugin_8c.html#a23cb647672c113276cbf86689f2f9054">remmina_rdp_verify_certificate_ex</a>;</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160; <span class="comment">//instance-&gt;VerifyChangedCertificate = remmina_rdp_verify_changed_certificate;</span></div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; instance-&gt;VerifyChangedCertificateEx = <a class="code" href="rdp__plugin_8c.html#a6d333b2bc5bfea17c71159ca5064ba84">remmina_rdp_verify_changed_certificate_ex</a>;</div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160; instance-&gt;ContextSize = <span class="keyword">sizeof</span>(<a class="code" href="rdp__plugin_8h.html#a0e50aeabb34e9e653933d081e74c5c16">rfContext</a>);</div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160; freerdp_context_new(instance);</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160; g_object_set_data_full(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>, rfi, free);</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;</div><div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a> = gp;</div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a> = instance;</div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a> = instance-&gt;settings;</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#acacad775c2c168f900deaa6c90481319">user_cancelled</a> = FALSE;</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;</div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160; freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160; <a class="code" href="rdp__event_8c.html#af3a991a02d35fb09c85f2e752a5393ca">remmina_rdp_event_init</a>(gp);</div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;}</div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;</div><div class="line"><a name="l02428"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5"> 2428</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;{</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160; <span class="keyword">const</span> gchar *profile_name, *p;</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160; gchar thname[16], c;</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160; gint nthname = 0;</div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;</div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a96c4689f6bc062482536038cb3b24e78">scale</a> = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ae97f4052c4bbda628682ae071ada27ed">remmina_protocol_widget_get_current_scale_mode</a>(gp);</div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160;</div><div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;</div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>, NULL, <a class="code" href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54">remmina_rdp_main_thread</a>, gp)) {</div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, <span class="stringliteral">&quot;%s&quot;</span>,</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160; <span class="stringliteral">&quot;Could not start pthread.&quot;</span>);</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a> = 0;</div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160; }</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;</div><div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160; <span class="comment">/* Generate a thread name to be used with pthread_setname_np() for debugging */</span></div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160; profile_name = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;name&quot;</span>);</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160; p = profile_name;</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160; strcpy(thname, <span class="stringliteral">&quot;RemmRDP:&quot;</span>);</div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160; <span class="keywordflow">if</span> (p) {</div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160; nthname = strlen(thname);</div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160; <span class="keywordflow">while</span> ((c = *p) != 0 &amp;&amp; nthname &lt; <span class="keyword">sizeof</span>(thname) - 1) {</div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160; <span class="keywordflow">if</span> (isalnum(c))</div><div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160; thname[nthname++] = c;</div><div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160; p++;</div><div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160; }</div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160; strcat(thname, <span class="stringliteral">&quot;&lt;NONAM&gt;&quot;</span>);</div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160; nthname = strlen(thname);</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160; }</div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160; thname[nthname] = 0;</div><div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;<span class="preprocessor">#if defined(__linux__)</span></div><div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160; pthread_setname_np(rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>, thname);</div><div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;<span class="preprocessor">#elif defined(__FreeBSD__)</span></div><div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160; pthread_set_name_np(rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>, thname);</div><div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;</div><div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;}</div><div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;</div><div class="line"><a name="l02476"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76"> 2476</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160;{</div><div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160;</div><div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Requesting to close the connection&quot;</span>);</div><div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160; <a class="code" href="structremmina__plugin__rdp__event.html">RemminaPluginRdpEvent</a> rdp_event = { 0 };</div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;</div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160; <span class="keywordflow">if</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a997a36825f2338b8e06bcd59becef61b">is_main_thread</a>())</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160; g_warning(<span class="stringliteral">&quot;WARNING: %s called on a subthread, which may not work or crash Remmina.&quot;</span>, __func__);</div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;</div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160; <span class="keywordflow">if</span> (rfi &amp;&amp; !rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a>) {</div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160; <span class="comment">/* libfreerdp is attempting to connect, we cannot interrupt our main thread</span></div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160;<span class="comment"> * in the connect phase.</span></div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160;<span class="comment"> * So we remove &quot;plugin-data&quot; from gp, so our rfi remains &quot;orphan&quot;</span></div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160; <a class="code" href="rdp__event_8c.html#a65eef99dc99f77be815a5da804ed94fc">remmina_rdp_event_uninit</a>(gp);</div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160; g_object_steal_data(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>);</div><div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(gp);</div><div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160; }</div><div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160;</div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;</div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160; <span class="keywordflow">if</span> (rfi &amp;&amp; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#aed59c73dc8dafbc915eb7db687221e89">srv_clip_data_wait</a> == SCDW_BUSY_WAIT) {</div><div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[RDP] requesting clipboard transfer to abort&quot;</span>);</div><div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160; <span class="comment">/* Allow clipboard transfer from server to terminate */</span></div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#aed59c73dc8dafbc915eb7db687221e89">srv_clip_data_wait</a> = SCDW_ABORTING;</div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160; usleep(100000);</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160; }</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;</div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a>) {</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160; <span class="comment">/* Special case: window closed when attempting to reconnect */</span></div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a> = TRUE;</div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160; }</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160;</div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160; rdp_event.<a class="code" href="structremmina__plugin__rdp__event.html#a84797e0cdf4484432740a8946325f126">type</a> = <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a6b5a1dbb05d7f63d451b84ea5ec85c03">REMMINA_RDP_EVENT_DISCONNECT</a>;</div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160; <a class="code" href="rdp__event_8c.html#ad446d6471bddba97f8bfcee8c51e4580">remmina_rdp_event_event_push</a>(gp, &amp;rdp_event);</div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;</div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;}</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;</div><div class="line"><a name="l02518"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43"> 2518</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature)</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;{</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;}</div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160;</div><div class="line"><a name="l02524"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19"> 2524</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature)</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;{</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160; <span class="keywordflow">switch</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20">id</a>) {</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_UNFOCUS:</div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160; <a class="code" href="rdp__event_8c.html#a4da10c12b28edc28403766994d6ef29c">remmina_rdp_event_unfocus</a>(gp);</div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160;</div><div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_SCALE:</div><div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160; <span class="keywordflow">if</span> (rfi) {</div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a96c4689f6bc062482536038cb3b24e78">scale</a> = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ae97f4052c4bbda628682ae071ada27ed">remmina_protocol_widget_get_current_scale_mode</a>(gp);</div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160; <a class="code" href="rdp__event_8c.html#a64ce0c66bb4cb6ddaee263ce8563f497">remmina_rdp_event_update_scale</a>(gp);</div><div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Remmina RDP plugin warning: Null value for rfi by REMMINA_RDP_FEATURE_SCALE&quot;</span>);</div><div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160; }</div><div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;</div><div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_MULTIMON:</div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160; <span class="keywordflow">if</span> (rfi) {</div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;multimon&quot;</span>, FALSE)) {</div><div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseMultimon, TRUE);</div><div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160; <span class="comment">/* TODO Add an option for this */</span></div><div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ForceMultimon, TRUE);</div><div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Fullscreen, TRUE);</div><div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160; <a class="code" href="rdp__event_8c.html#ac7c8d626470553c1659312697811dbfe">remmina_rdp_event_send_delayed_monitor_layout</a>(gp);</div><div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160; }</div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Remmina RDP plugin warning: Null value for rfi by REMMINA_RDP_FEATURE_MULTIMON&quot;</span>);</div><div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160; }</div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160;</div><div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_DYNRESUPDATE:</div><div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;</div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_TOOL_REFRESH:</div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160; <span class="keywordflow">if</span> (rfi)</div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160; gtk_widget_queue_draw_area(rfi-&gt;<a class="code" href="structrf__context.html#acee2095e72fb2428c498f62e21800026">drawing_area</a>, 0, 0,</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#adf255b7ceaec6a51fc9269cf824a02ce">protocol_plugin_get_width</a>(gp),</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aa159850f20499e5bc1067f533d2fa820">protocol_plugin_get_height</a>(gp));</div><div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Remmina RDP plugin warning: Null value for rfi by REMMINA_RDP_FEATURE_TOOL_REFRESH&quot;</span>);</div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_TOOL_SENDCTRLALTDEL:</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160; <a class="code" href="rdp__plugin_8c.html#a04920ffa78f21d63806d544fcca9c56e">remmina_rdp_send_ctrlaltdel</a>(gp);</div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160; }</div><div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160;}</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160;</div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160;<span class="comment">/* Send a keystroke to the plugin window */</span></div><div class="line"><a name="l02580"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b"> 2580</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, <span class="keyword">const</span> guint keystrokes[], <span class="keyword">const</span> gint keylen)</div><div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160;{</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160;</div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2d6704aa58ecc18ecc178ea418addd87">protocol_plugin_send_keys_signals</a>(rfi-&gt;<a class="code" href="structrf__context.html#acee2095e72fb2428c498f62e21800026">drawing_area</a>,</div><div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160; keystrokes, keylen, GDK_KEY_PRESS | GDK_KEY_RELEASE);</div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160;}</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;</div><div class="line"><a name="l02590"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30"> 2590</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, <a class="code" href="struct___remmina_plugin_screenshot_data.html">RemminaPluginScreenshotData</a> *rpsd)</div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;{</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160; rdpGdi *gdi;</div><div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160; <span class="keywordtype">size_t</span> szmem;</div><div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160;</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160; UINT32 bytesPerPixel;</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160; UINT32 bitsPerPixel;</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;</div><div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160; <span class="keywordflow">if</span> (!rfi)</div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160;</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160; gdi = ((rdpContext *)rfi)-&gt;gdi;</div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;</div><div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160; bytesPerPixel = GetBytesPerPixel(gdi-&gt;hdc-&gt;format);</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160; bitsPerPixel = GetBitsPerPixel(gdi-&gt;hdc-&gt;format);</div><div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160;</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160; szmem = gdi-&gt;width * gdi-&gt;height * bytesPerPixel;</div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160;</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;allocating %zu bytes for a full screenshot&quot;</span>, szmem);</div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a> = malloc(szmem);</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160; <span class="keywordflow">if</span> (!rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>) {</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;could not set aside %zu bytes for a full screenshot&quot;</span>, szmem);</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160; }</div><div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">width</a> = gdi-&gt;width;</div><div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">height</a> = gdi-&gt;height;</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">bitsPerPixel</a> = bitsPerPixel;</div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">bytesPerPixel</a> = bytesPerPixel;</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160;</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160; memcpy(rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>, gdi-&gt;primary_buffer, szmem);</div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160; <span class="comment">/* Returning TRUE instruct also the caller to deallocate rpsd-&gt;buffer */</span></div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160;}</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160;</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160;<span class="comment">/* Array of key/value pairs for colour depths */</span></div><div class="line"><a name="l02630"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1"> 2630</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>[] =</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160;{</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160; <span class="comment">/* 1st one is the default in a new install */</span></div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160; <span class="stringliteral">&quot;99&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Automatic (32 bpp) (Server chooses its best format)&quot;</span>),</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160; <span class="stringliteral">&quot;66&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX AVC444 (32 bpp)&quot;</span>),</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160; <span class="stringliteral">&quot;65&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX AVC420 (32 bpp)&quot;</span>),</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160; <span class="stringliteral">&quot;64&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX RFX (32 bpp)&quot;</span>),</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160; <span class="stringliteral">&quot;63&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX RFX Progressive (32 bpp)&quot;</span>),</div><div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160; <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RemoteFX (32 bpp)&quot;</span>),</div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160; <span class="stringliteral">&quot;32&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;True colour (32 bpp)&quot;</span>),</div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160; <span class="stringliteral">&quot;24&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;True colour (24 bpp)&quot;</span>),</div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160; <span class="stringliteral">&quot;16&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High colour (16 bpp)&quot;</span>),</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160; <span class="stringliteral">&quot;15&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High colour (15 bpp)&quot;</span>),</div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160; <span class="stringliteral">&quot;8&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;256 colours (8 bpp)&quot;</span>),</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160; NULL</div><div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160;};</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;<span class="comment">/* Array of key/value pairs for the FreeRDP logging level */</span></div><div class="line"><a name="l02648"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af98d5eac7e9282802ad973f6313034a2"> 2648</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#af98d5eac7e9282802ad973f6313034a2">log_level</a>[] =</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160;{</div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160; <span class="stringliteral">&quot;INFO&quot;</span>, <span class="stringliteral">&quot;INFO&quot;</span>,</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160; <span class="stringliteral">&quot;FATAL&quot;</span>, <span class="stringliteral">&quot;FATAL&quot;</span>,</div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160; <span class="stringliteral">&quot;ERROR&quot;</span>, <span class="stringliteral">&quot;ERROR&quot;</span>,</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160; <span class="stringliteral">&quot;WARN&quot;</span>, <span class="stringliteral">&quot;WARN&quot;</span>,</div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160; <span class="stringliteral">&quot;DEBUG&quot;</span>, <span class="stringliteral">&quot;DEBUG&quot;</span>,</div><div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160; <span class="stringliteral">&quot;TRACE&quot;</span>, <span class="stringliteral">&quot;TRACE&quot;</span>,</div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160; <span class="stringliteral">&quot;OFF&quot;</span>, <span class="stringliteral">&quot;OFF&quot;</span>,</div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160; NULL</div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160;};</div><div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160;</div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160;</div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160;<span class="comment">/* Array of key/value pairs for quality selection */</span></div><div class="line"><a name="l02662"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7"> 2662</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a>[] =</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;{</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160; <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Poor (fastest)&quot;</span>),</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160; <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Medium&quot;</span>),</div><div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160; <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Good&quot;</span>),</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160; <span class="stringliteral">&quot;9&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Best (slowest)&quot;</span>),</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160; NULL</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160;};</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160;</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160;<span class="comment">/* Array of key/value pairs for quality selection */</span></div><div class="line"><a name="l02672"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe"> 2672</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a>[] =</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160;{</div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160; <span class="stringliteral">&quot;none&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;None&quot;</span>),</div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160; <span class="stringliteral">&quot;autodetect&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Auto-detect&quot;</span>),</div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160; <span class="stringliteral">&quot;modem&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Modem&quot;</span>),</div><div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160; <span class="stringliteral">&quot;broadband-low&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Low performance broadband&quot;</span>),</div><div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160; <span class="stringliteral">&quot;satellite&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Satellite&quot;</span>),</div><div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160; <span class="stringliteral">&quot;broadband-high&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High performance broadband&quot;</span>),</div><div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160; <span class="stringliteral">&quot;wan&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;WAN&quot;</span>),</div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160; <span class="stringliteral">&quot;lan&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;LAN&quot;</span>),</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160; NULL</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;};</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160;</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;<span class="comment">/* Array of key/value pairs for sound options */</span></div><div class="line"><a name="l02686"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a36918dbbfad26310cfe3a3aed5f8f5dc"> 2686</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a36918dbbfad26310cfe3a3aed5f8f5dc">sound_list</a>[] =</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;{</div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160; <span class="stringliteral">&quot;off&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Off&quot;</span>),</div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160; <span class="stringliteral">&quot;local&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local&quot;</span>),</div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160; <span class="stringliteral">&quot;remote&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote&quot;</span>),</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160; NULL</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;};</div><div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160;</div><div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;<span class="comment">/* Array of key/value pairs for security */</span></div><div class="line"><a name="l02695"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a2f9e1bbd16e19411adbd6a423a9b571f"> 2695</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a2f9e1bbd16e19411adbd6a423a9b571f">security_list</a>[] =</div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160;{</div><div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160; <span class="stringliteral">&quot;&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Automatic negotiation&quot;</span>),</div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160; <span class="stringliteral">&quot;nla&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;NLA protocol security&quot;</span>),</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160; <span class="stringliteral">&quot;tls&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TLS protocol security&quot;</span>),</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160; <span class="stringliteral">&quot;rdp&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP protocol security&quot;</span>),</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160; <span class="stringliteral">&quot;ext&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;NLA extended protocol security&quot;</span>),</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160; NULL</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;};</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;</div><div class="line"><a name="l02705"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#aa3191c66b2dabbb1a3c3c5474c6e9626"> 2705</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#aa3191c66b2dabbb1a3c3c5474c6e9626">gwtransp_list</a>[] =</div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160;{</div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160; <span class="stringliteral">&quot;http&quot;</span>, <span class="stringliteral">&quot;HTTP&quot;</span>,</div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160; <span class="stringliteral">&quot;rpc&quot;</span>, <span class="stringliteral">&quot;RPC&quot;</span>,</div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160; <span class="stringliteral">&quot;auto&quot;</span>, <span class="stringliteral">&quot;Auto&quot;</span>,</div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160; NULL</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;};</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;</div><div class="line"><a name="l02713"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a4faaf64a28ae81730aa4677693b51650"> 2713</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a4faaf64a28ae81730aa4677693b51650">tls_seclevel</a>[] =</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;{</div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160; <span class="stringliteral">&quot;&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Default&quot;</span>),</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160; <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;0 — Windows 7 compatible&quot;</span>),</div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160; <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;1&quot;</span>),</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160; <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;2&quot;</span>),</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160; <span class="stringliteral">&quot;3&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;3&quot;</span>),</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160; <span class="stringliteral">&quot;4&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;4&quot;</span>),</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160; <span class="stringliteral">&quot;5&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;5&quot;</span>),</div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160; NULL</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;};</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;</div><div class="line"><a name="l02725"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a7565748ab340f2e7c66bcb755e006bd5"> 2725</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a7565748ab340f2e7c66bcb755e006bd5">clientbuild_list</a>[] =</div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;2600 (Windows XP), 7601 (Windows Vista/7), 9600 (Windows 8 and newer)&quot;</span>);</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;</div><div class="line"><a name="l02728"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a6910d98a00cac88fb257d9bb2d080243"> 2728</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a6910d98a00cac88fb257d9bb2d080243">clientbuild_tooltip</a>[] =</div><div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Used i.a. by terminal services in a smart card channel to distinguish client capabilities:\n&quot;</span></div><div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160; <span class="stringliteral">&quot; • &lt; 4034: Windows XP base smart card functions\n&quot;</span></div><div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160; <span class="stringliteral">&quot; • 4034-7064: Windows Vista/7: SCardReadCache(),\n&quot;</span></div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160; <span class="stringliteral">&quot; SCardWriteCache(), SCardGetTransmitCount()\n&quot;</span></div><div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160; <span class="stringliteral">&quot; • &gt;= 7065: Windows 8 and newer: SCardGetReaderIcon(),\n&quot;</span></div><div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160; <span class="stringliteral">&quot; SCardGetDeviceTypeId()&quot;</span>);</div><div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;</div><div class="line"><a name="l02736"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ae179a744d3cb61fe894c2dc0d278da71"> 2736</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#ae179a744d3cb61fe894c2dc0d278da71">microphone_tooltip</a>[] =</div><div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of audio input:\n&quot;</span></div><div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160; <span class="stringliteral">&quot; • [sys:&lt;sys&gt;,][dev:&lt;dev&gt;,][format:&lt;format&gt;,][rate:&lt;rate&gt;,]\n&quot;</span></div><div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160; <span class="stringliteral">&quot; [channel:&lt;channel&gt;] Audio input (microphone)\n&quot;</span></div><div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160; <span class="stringliteral">&quot; • sys:pulse\n&quot;</span></div><div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160; <span class="stringliteral">&quot; • format:1\n&quot;</span></div><div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160; <span class="stringliteral">&quot; • sys:oss,dev:1,format:1\n&quot;</span></div><div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160; <span class="stringliteral">&quot; • sys:alsa&quot;</span>);</div><div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160;</div><div class="line"><a name="l02745"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a96a6da204741a7275dd7001e041cc86d"> 2745</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a96a6da204741a7275dd7001e041cc86d">audio_tooltip</a>[] =</div><div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of audio output:\n&quot;</span></div><div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160; <span class="stringliteral">&quot; • [sys:&lt;sys&gt;,][dev:&lt;dev&gt;,][format:&lt;format&gt;,][rate:&lt;rate&gt;,]\n&quot;</span></div><div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160; <span class="stringliteral">&quot; [channel:&lt;channel&gt;] Audio output\n&quot;</span></div><div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160; <span class="stringliteral">&quot; • sys:pulse\n&quot;</span></div><div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160; <span class="stringliteral">&quot; • format:1\n&quot;</span></div><div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160; <span class="stringliteral">&quot; • sys:oss,dev:1,format:1\n&quot;</span></div><div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160; <span class="stringliteral">&quot; • sys:alsa&quot;</span>);</div><div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160;</div><div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160;</div><div class="line"><a name="l02755"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b"> 2755</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b">usb_tooltip</a>[] =</div><div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of USB device:\n&quot;</span></div><div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160; <span class="stringliteral">&quot; • [dbg,][id:&lt;vid&gt;:&lt;pid&gt;#…,][addr:&lt;bus&gt;:&lt;addr&gt;#…,][auto]\n&quot;</span></div><div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160; <span class="stringliteral">&quot; • auto\n&quot;</span></div><div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>&#160; <span class="stringliteral">&quot; • id:054c:0268#4669:6e6b,addr:04:0c&quot;</span>);</div><div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;</div><div class="line"><a name="l02761"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a521e1d4c1a3175d5c56faeed41b069a4"> 2761</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a521e1d4c1a3175d5c56faeed41b069a4">timeout_tooltip</a>[] =</div><div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Advanced setting for high latency links:\n&quot;</span></div><div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160; <span class="stringliteral">&quot;Adjusts the connection timeout. Use if your connection times out.\n&quot;</span></div><div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160; <span class="stringliteral">&quot;The highest possible value is 600000 ms (10 minutes).\n&quot;</span>);</div><div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;</div><div class="line"><a name="l02766"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0"> 2766</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a>[] =</div><div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Performance optimisations based on the network connection type:\n&quot;</span></div><div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160; <span class="stringliteral">&quot;Using auto-detection is advised.\n&quot;</span></div><div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160; <span class="stringliteral">&quot;If “Auto-detect” fails, choose the most appropriate option in the list.\n&quot;</span>);</div><div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160;</div><div class="line"><a name="l02771"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de"> 2771</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a>[] =</div><div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Comma-separated list of monitor IDs and desktop orientations:\n&quot;</span></div><div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160; <span class="stringliteral">&quot; • [&lt;id&gt;:&lt;orientation-in-degrees&gt;,]\n&quot;</span></div><div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160; <span class="stringliteral">&quot; • 0,1,2,3\n&quot;</span></div><div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160; <span class="stringliteral">&quot; • 0:270,1:90\n&quot;</span></div><div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160; <span class="stringliteral">&quot;Orientations are specified in degrees, valid values are:\n&quot;</span></div><div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160; <span class="stringliteral">&quot; • 0 (landscape)\n&quot;</span></div><div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160; <span class="stringliteral">&quot; • 90 (portrait)\n&quot;</span></div><div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160; <span class="stringliteral">&quot; • 180 (landscape flipped)\n&quot;</span></div><div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160; <span class="stringliteral">&quot; • 270 (portrait flipped)\n&quot;</span></div><div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>&#160; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160;</div><div class="line"><a name="l02783"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1"> 2783</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a>[] =</div><div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Redirect directory &lt;path&gt; as named share &lt;name&gt;.\n&quot;</span></div><div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160; <span class="stringliteral">&quot; • &lt;name&gt;,&lt;fullpath&gt;[;&lt;name&gt;,&lt;fullpath&gt;[;…]]\n&quot;</span></div><div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160; <span class="stringliteral">&quot; • MyHome,/home/remminer\n&quot;</span></div><div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160; <span class="stringliteral">&quot; • /home/remminer\n&quot;</span></div><div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160; <span class="stringliteral">&quot; • MyHome,/home/remminer;SomePath,/path/to/somepath\n&quot;</span></div><div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160; <span class="stringliteral">&quot;Hotplug support is enabled with:\n&quot;</span></div><div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160; <span class="stringliteral">&quot; • hotplug,*\n&quot;</span></div><div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>&#160;</div><div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160;<span class="comment">/* Array of RemminaProtocolSetting for basic settings.</span></div><div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160;<span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160;<span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l02796"></a><span class="lineno"> 2796</span>&#160;<span class="comment"> * b) Setting name</span></div><div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>&#160;<span class="comment"> * c) Setting description</span></div><div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>&#160;<span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160;<span class="comment"> * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO</span></div><div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160;<span class="comment"> * f) Setting tooltip</span></div><div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>&#160;<span class="comment"> * g) Validation data pointer, will be passed to the validation callback method.</span></div><div class="line"><a name="l02802"></a><span class="lineno"> 2802</span>&#160;<span class="comment"> * h) Validation callback method (Can be NULL. Every entry will be valid then.)</span></div><div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160;<span class="comment"> * use following prototype:</span></div><div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160;<span class="comment"> * gboolean mysetting_validator_method(gpointer key, gpointer value,</span></div><div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160;<span class="comment"> * gpointer validator_data);</span></div><div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160;<span class="comment"> * gpointer key is a gchar* containing the setting&#39;s name,</span></div><div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160;<span class="comment"> * gpointer value contains the value which should be validated,</span></div><div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160;<span class="comment"> * gpointer validator_data contains your passed data.</span></div><div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02810"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1"> 2810</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> <a class="code" href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a>[] =</div><div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160;{</div><div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;domain&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Domain&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;drive&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share folder&quot;</span>), FALSE, NULL, <a class="code" href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a>, NULL, NULL },</div><div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;restricted-admin&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Restricted admin mode&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;pth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password hash&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Restricted admin mode password hash&quot;</span>), NULL, NULL },</div><div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;left-handed&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Left-handed mouse support&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Swap left and right mouse buttons for left-handed mouse support&quot;</span>), NULL, NULL },</div><div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disable-smooth-scrolling&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable smooth scrolling&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;multimon&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable multi monitor&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;span&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Span screen over multiple monitors&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;monitorids&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;List monitor IDs&quot;</span>), FALSE, NULL, <a class="code" href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a>, NULL, NULL },</div><div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>, <span class="stringliteral">&quot;resolution&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;colordepth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Colour depth&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>, NULL, NULL, NULL },</div><div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;network&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Network connection type&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a>, <a class="code" href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a>, NULL, NULL },</div><div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>, <span class="stringliteral">&quot;keymap&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160;};</div><div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160;</div><div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160;<span class="comment">/* Array of RemminaProtocolSetting for advanced settings.</span></div><div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160;<span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160;<span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160;<span class="comment"> * b) Setting name</span></div><div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160;<span class="comment"> * c) Setting description</span></div><div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160;<span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>&#160;<span class="comment"> * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO</span></div><div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160;<span class="comment"> * f) Setting Tooltip</span></div><div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02840"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f"> 2840</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> <a class="code" href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a>[] =</div><div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>&#160;{</div><div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;quality&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Quality&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a>, NULL },</div><div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;security&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Security protocol negotiation&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a2f9e1bbd16e19411adbd6a423a9b571f">security_list</a>, NULL },</div><div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;gwtransp&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Gateway transport type&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#aa3191c66b2dabbb1a3c3c5474c6e9626">gwtransp_list</a>, NULL },</div><div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;tls-seclevel&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TLS Security Level&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a4faaf64a28ae81730aa4677693b51650">tls_seclevel</a>, NULL },</div><div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;freerdp_log_level&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FreeRDP log level&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#af98d5eac7e9282802ad973f6313034a2">log_level</a>, NULL },</div><div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;freerdp_log_filters&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FreeRDP log filters&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;tag:level[,tag:level[,…]]&quot;</span>) },</div><div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;sound&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Audio output mode&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a36918dbbfad26310cfe3a3aed5f8f5dc">sound_list</a>, NULL },</div><div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;audio-output&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Redirect local audio output&quot;</span>), TRUE, NULL, <a class="code" href="rdp__plugin_8c.html#a96a6da204741a7275dd7001e041cc86d">audio_tooltip</a> },</div><div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;microphone&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Redirect local microphone&quot;</span>), TRUE, NULL, <a class="code" href="rdp__plugin_8c.html#ae179a744d3cb61fe894c2dc0d278da71">microphone_tooltip</a> },</div><div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;timeout&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Connection timeout in ms&quot;</span>), TRUE, NULL, <a class="code" href="rdp__plugin_8c.html#a521e1d4c1a3175d5c56faeed41b069a4">timeout_tooltip</a> },</div><div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;gateway_server&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote Desktop Gateway server&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;gateway_username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote Desktop Gateway username&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;gateway_password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote Desktop Gateway password&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;gateway_domain&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote Desktop Gateway domain&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;clientname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Client name&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>, <span class="stringliteral">&quot;clientbuild&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Client build&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a7565748ab340f2e7c66bcb755e006bd5">clientbuild_list</a>, <a class="code" href="rdp__plugin_8c.html#a6910d98a00cac88fb257d9bb2d080243">clientbuild_tooltip</a> },</div><div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;exec&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start-up program&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execpath&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start-up path&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;loadbalanceinfo&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Load balance info&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160; <span class="comment">// TRANSLATORS: Do not use typographic quotation marks, these must stay as &quot;double quote&quot;, also know as “Typewriter (&quot;programmer&#39;s&quot;) quote, ambidextrous.”</span></div><div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;printer_overrides&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Override printer drivers&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;\&quot;Samsung_CLX-3300_Series\&quot;:\&quot;Samsung CLX-3300 Series PS\&quot;;\&quot;Canon MF410\&quot;:\&quot;Canon MF410 Series UFR II\&quot;&quot;</span>) },</div><div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;usb&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;USB device redirection&quot;</span>), TRUE, NULL, <a class="code" href="rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b">usb_tooltip</a> },</div><div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;serialname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local serial name&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;COM1, COM2, etc.&quot;</span>) },</div><div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;serialdriver&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local serial driver&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Serial&quot;</span>) },</div><div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;serialpath&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local serial path&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;/dev/ttyS0, /dev/ttyS1, etc.&quot;</span>) },</div><div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;parallelname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local parallel name&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;parallelpath&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local parallel device&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;smartcardname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Name of smart card&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;dvc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Dynamic virtual channel&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;channel&gt;[,&lt;options&gt;]&quot;</span>) },</div><div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;vc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Static virtual channel&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;channel&gt;[,&lt;options&gt;]&quot;</span>) },</div><div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;rdp2tcp&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TCP redirection&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;/PATH/TO/rdp2tcp&quot;</span>) },</div><div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;rdp_reconnect_attempts&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Reconnect attempts number&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;The maximum number of reconnect attempts upon an RDP disconnect (default: 20)&quot;</span>) },</div><div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;preferipv6&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Prefer IPv6 AAAA record over IPv4 A record&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;shareprinter&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share printers&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;shareserial&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share serial ports&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;serialpermissive&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;(SELinux) permissive mode for serial ports&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;shareparallel&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share parallel ports&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;sharesmartcard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share a smart card&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableclipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off clipboard sync&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;cert_ignore&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Ignore certificate&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;old-license&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use the old license workflow&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;It disables CAL and hwId is set to 0&quot;</span>) },</div><div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;console&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Attach to console (2003/2003 R2)&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disable_fastpath&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off fast-path&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;gateway_usage&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Server detection using Remote Desktop Gateway&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160;<span class="preprocessor">#if defined(PROXY_TYPE_IGNORE)</span></div><div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;useproxyenv&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use system proxy settings&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableautoreconnect&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off automatic reconnection&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;relax-order-checks&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Relax order checks&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;glyph-cache&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Glyph cache&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;multitransport&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable multitransport protocol (UDP)&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Using the UDP protocol may improve performance&quot;</span>) },</div><div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;base-cred-for-gw&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use base credentials for gateway too&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 3, 1)</span></div><div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;websockets&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable Gateway websockets support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;no-suppress&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Update framebuffer even when not visible&quot;</span>), TRUE, NULL },</div><div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160;};</div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160;</div><div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160;<span class="comment">/* Array for available features.</span></div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160;<span class="comment"> * The last element of the array must be REMMINA_PROTOCOL_FEATURE_TYPE_END. */</span></div><div class="line"><a name="l02904"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e"> 2904</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> <a class="code" href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a>[] =</div><div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160;{</div><div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>, REMMINA_RDP_FEATURE_VIEWONLY, GINT_TO_POINTER(REMMINA_PROTOCOL_FEATURE_PREF_CHECK), <span class="stringliteral">&quot;viewonly&quot;</span>,</div><div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;View only&quot;</span>) },</div><div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>, REMMINA_RDP_FEATURE_TOOL_REFRESH, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Refresh&quot;</span>), NULL, NULL },</div><div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>, REMMINA_RDP_FEATURE_SCALE, NULL, NULL, NULL },</div><div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a>, REMMINA_RDP_FEATURE_DYNRESUPDATE, NULL, NULL, NULL },</div><div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a>, REMMINA_RDP_FEATURE_MULTIMON, NULL, NULL, NULL },</div><div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>, REMMINA_RDP_FEATURE_TOOL_SENDCTRLALTDEL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Send Ctrl+Alt+Delete&quot;</span>), NULL, NULL },</div><div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a>, REMMINA_RDP_FEATURE_UNFOCUS, NULL, NULL, NULL },</div><div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4">REMMINA_PROTOCOL_FEATURE_TYPE_END</a>, 0, NULL, NULL, NULL }</div><div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160;};</div><div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160;</div><div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160;<span class="comment">/* This will be filled with version info string */</span></div><div class="line"><a name="l02918"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4"> 2918</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>[256];</div><div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;</div><div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160;<span class="comment">/* Protocol plugin definition and features */</span></div><div class="line"><a name="l02921"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a8cad107c77386b752f338d6c7f2b6a0a"> 2921</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> <a class="code" href="rdp__plugin_8c.html#a8cad107c77386b752f338d6c7f2b6a0a">remmina_rdp</a> =</div><div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160;{</div><div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, <span class="comment">// Type</span></div><div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160; <span class="stringliteral">&quot;RDP&quot;</span>, <span class="comment">// Name</span></div><div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - Remote Desktop Protocol&quot;</span>), <span class="comment">// Description</span></div><div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160; <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, <span class="comment">// Version number</span></div><div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160; <span class="stringliteral">&quot;org.remmina.Remmina-rdp-symbolic&quot;</span>, <span class="comment">// Icon for normal connection</span></div><div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160; <span class="stringliteral">&quot;org.remmina.Remmina-rdp-ssh-symbolic&quot;</span>, <span class="comment">// Icon for SSH connection</span></div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160; <a class="code" href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a>, <span class="comment">// Array for basic settings</span></div><div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160; <a class="code" href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a>, <span class="comment">// Array for advanced settings</span></div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>, <span class="comment">// SSH settings type</span></div><div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160; <a class="code" href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a>, <span class="comment">// Array for available features</span></div><div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160; <a class="code" href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a>, <span class="comment">// Plugin initialization</span></div><div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160; <a class="code" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a>, <span class="comment">// Plugin open connection</span></div><div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160; <a class="code" href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a>, <span class="comment">// Plugin close connection</span></div><div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160; <a class="code" href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a>, <span class="comment">// Query for available features</span></div><div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160; <a class="code" href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a>, <span class="comment">// Call a feature</span></div><div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160; <a class="code" href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a>, <span class="comment">// Send a keystroke</span></div><div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160; <a class="code" href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a>, <span class="comment">// Screenshot</span></div><div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>&#160; <a class="code" href="rdp__event_8c.html#a09271b787fc086f05a8a6e7c3282d6aa">remmina_rdp_event_on_map</a>, <span class="comment">// RCW map event</span></div><div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>&#160; <a class="code" href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">remmina_rdp_event_on_unmap</a> <span class="comment">// RCW unmap event</span></div><div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160;};</div><div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160;</div><div class="line"><a name="l02945"></a><span class="lineno"> 2945</span>&#160;<span class="comment">/* File plugin definition and features */</span></div><div class="line"><a name="l02946"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a4d69cf4d703b55b87d1de06493e2a619"> 2946</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a> <a class="code" href="rdp__plugin_8c.html#a4d69cf4d703b55b87d1de06493e2a619">remmina_rdpf</a> =</div><div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160;{</div><div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac">REMMINA_PLUGIN_TYPE_FILE</a>, <span class="comment">// Type</span></div><div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160; <span class="stringliteral">&quot;RDPF&quot;</span>, <span class="comment">// Name</span></div><div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - RDP File Handler&quot;</span>), <span class="comment">// Description</span></div><div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>&#160; <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, <span class="comment">// Version number</span></div><div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160; <a class="code" href="rdp__file_8c.html#a5465339535714b34c0f60a4ca386e335">remmina_rdp_file_import_test</a>, <span class="comment">// Test import function</span></div><div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160; <a class="code" href="rdp__file_8c.html#a992b5a31dfa961cb3244cb3e2084c4cf">remmina_rdp_file_import</a>, <span class="comment">// Import function</span></div><div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160; <a class="code" href="rdp__file_8c.html#aa3a9bcd9fdbbf8906d74acf57bd5ab90">remmina_rdp_file_export_test</a>, <span class="comment">// Test export function</span></div><div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160; <a class="code" href="rdp__file_8c.html#a0141f87575bf2b97219541b419ed467e">remmina_rdp_file_export</a>, <span class="comment">// Export function</span></div><div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160; NULL</div><div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160;};</div><div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;</div><div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;<span class="comment">/* Preferences plugin definition and features */</span></div><div class="line"><a name="l02961"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af43b1397163aab939f9e88ed201d52ba"> 2961</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_pref_plugin.html">RemminaPrefPlugin</a> <a class="code" href="rdp__plugin_8c.html#af43b1397163aab939f9e88ed201d52ba">remmina_rdps</a> =</div><div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;{</div><div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757">REMMINA_PLUGIN_TYPE_PREF</a>, <span class="comment">// Type</span></div><div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160; <span class="stringliteral">&quot;RDPS&quot;</span>, <span class="comment">// Name</span></div><div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - Preferences&quot;</span>), <span class="comment">// Description</span></div><div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160; <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, <span class="comment">// Version number</span></div><div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160; <span class="stringliteral">&quot;RDP&quot;</span>, <span class="comment">// Label</span></div><div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160; <a class="code" href="rdp__settings_8c.html#a55dda4fb09dc13dafba65becda89e194">remmina_rdp_settings_new</a> <span class="comment">// Preferences body function</span></div><div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160;};</div><div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160;</div><div class="line"><a name="l02972"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a7031208f6cbf262a2e69fe971f248591"> 2972</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">char</span> *<a class="code" href="rdp__plugin_8c.html#a7031208f6cbf262a2e69fe971f248591">buildconfig_strstr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *bc, <span class="keyword">const</span> <span class="keywordtype">char</span> *option)</div><div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160;{</div><div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160;</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160; <span class="keywordtype">char</span> *p, *n;</div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160;</div><div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>&#160; p = strcasestr(bc, option);</div><div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div><div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160;</div><div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160; <span class="keywordflow">if</span> (p &gt; bc &amp;&amp; *(p - 1) &gt; <span class="charliteral">&#39; &#39;</span>)</div><div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160;</div><div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160; n = p + strlen(option);</div><div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160; <span class="keywordflow">if</span> (*n &gt; <span class="charliteral">&#39; &#39;</span>)</div><div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160;</div><div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160; <span class="keywordflow">return</span> p;</div><div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;}</div><div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;</div><div class="line"><a name="l02992"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a56e5020de11446dbc23f3480e313f208"> 2992</a></span>&#160;G_MODULE_EXPORT gboolean <a class="code" href="rdp__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a>(<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *service)</div><div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160;{</div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160; <span class="keywordtype">int</span> vermaj, vermin, verrev;</div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;</div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160; remmina_plugin_service = service;</div><div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;</div><div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160; <span class="comment">/* Check that we are linked to the correct version of libfreerdp */</span></div><div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160;</div><div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160; freerdp_get_version(&amp;vermaj, &amp;vermin, &amp;verrev);</div><div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160; <span class="keywordflow">if</span> (vermaj &lt; FREERDP_REQUIRED_MAJOR ||</div><div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160; (vermaj == FREERDP_REQUIRED_MAJOR &amp;&amp; (vermin &lt; FREERDP_REQUIRED_MINOR ||</div><div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160; (vermin == FREERDP_REQUIRED_MINOR &amp;&amp; verrev &lt; FREERDP_REQUIRED_REVISION)))) {</div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160; g_printf(<span class="stringliteral">&quot;Upgrade your FreeRDP library version from %d.%d.%d to at least libfreerdp %d.%d.%d &quot;</span></div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160; <span class="stringliteral">&quot;to run the RDP plugin.\n&quot;</span>,</div><div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160; vermaj, vermin, verrev,</div><div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160; FREERDP_REQUIRED_MAJOR, FREERDP_REQUIRED_MINOR, FREERDP_REQUIRED_REVISION);</div><div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160; }</div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160;</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160; bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160; bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">&quot;UTF-8&quot;</span>);</div><div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160;</div><div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *)&amp;remmina_rdp))</div><div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160;</div><div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160; remmina_rdpf.<a class="code" href="struct___remmina_file_plugin.html#ac4f2b0118490cede0577aaee9f2e0b5f">export_hints</a> = _(<span class="stringliteral">&quot;Export connection in Windows .rdp file format&quot;</span>);</div><div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>&#160;</div><div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *)&amp;remmina_rdpf))</div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160;</div><div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *)&amp;remmina_rdps))</div><div class="line"><a name="l03024"></a><span class="lineno"> 3024</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>&#160;</div><div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="rdp__plugin_8c.html#a7031208f6cbf262a2e69fe971f248591">buildconfig_strstr</a>(freerdp_get_build_config(), <span class="stringliteral">&quot;WITH_GFX_H264=ON&quot;</span>)) {</div><div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160; <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> = TRUE;</div><div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;gfx_h264_available: %d&quot;</span>, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160; <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> = FALSE;</div><div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;gfx_h264_available: %d&quot;</span>, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160; <span class="comment">/* Remove values 65 and 66 from colordepth_list array by shifting it */</span></div><div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160; gpointer *src, *dst;</div><div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160; dst = src = <a class="code" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>;</div><div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160; <span class="keywordflow">while</span> (*src) {</div><div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160; <span class="keywordflow">if</span> (strcmp(*src, <span class="stringliteral">&quot;66&quot;</span>) != 0 &amp;&amp; strcmp(*src, <span class="stringliteral">&quot;65&quot;</span>) != 0) {</div><div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>&#160; <span class="keywordflow">if</span> (dst != src) {</div><div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160; *dst = *src;</div><div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160; *(dst + 1) = *(src + 1);</div><div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160; }</div><div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160; dst += 2;</div><div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160; }</div><div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160; src += 2;</div><div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160; }</div><div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160; *dst = NULL;</div><div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160; }</div><div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160;</div><div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160; snprintf(<a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, <span class="keyword">sizeof</span>(<a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>),</div><div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160; <span class="stringliteral">&quot;RDP plugin: %s (Git %s), Compiled with libfreerdp %s (%s), Running with libfreerdp %s (rev %s), H.264 %s&quot;</span>,</div><div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160; VERSION, REMMINA_GIT_REVISION,</div><div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160;#ifdef WITH_FREERDP3</div><div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160; FREERDP_VERSION_FULL, FREERDP_GIT_REVISION,</div><div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160;#<span class="keywordflow">else</span></div><div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160; FREERDP_VERSION_FULL, GIT_REVISION,</div><div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160;#endif</div><div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160; freerdp_get_version_string(),</div><div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160; freerdp_get_build_revision(),</div><div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160; <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> ? <span class="stringliteral">&quot;Yes&quot;</span> : <span class="stringliteral">&quot;No&quot;</span></div><div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160; );</div><div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160;</div><div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160; <a class="code" href="rdp__settings_8c.html#acf37368f3376add8547723d13443cccb">remmina_rdp_settings_init</a>();</div><div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160;</div><div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160;}</div><div class="ttc" id="structrf__clipboard_html_a773214c0bb4f351a609a085f786304aa"><div class="ttname"><a href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">rf_clipboard::context</a></div><div class="ttdeci">CliprdrClientContext * context</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00135">rdp_plugin.h:135</a></div></div>
+<a href="rdp__plugin_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2022 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Copyright (C) 2022-2023 Antenore Gatta, Giovanni Panozzo, Hiroyuki Tanaka</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define _GNU_SOURCE</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="plugin_8h.html">remmina/plugin.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__plugin_8h.html">rdp_plugin.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__event_8h.html">rdp_event.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__graphics_8h.html">rdp_graphics.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__file_8h.html">rdp_file.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__settings_8h.html">rdp_settings.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__cliprdr_8h.html">rdp_cliprdr.h</a>&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__monitor_8h.html">rdp_monitor.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rdp__channels_8h.html">rdp_channels.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &lt;sys/time.h&gt;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo-xlib.h&gt;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;freerdp/addin.h&gt;</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;freerdp/assistance.h&gt;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &lt;freerdp/settings.h&gt;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &lt;freerdp/freerdp.h&gt;</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &lt;freerdp/constants.h&gt;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &lt;freerdp/client/cliprdr.h&gt;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &lt;freerdp/client/channels.h&gt;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &lt;freerdp/client/cmdline.h&gt;</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &lt;freerdp/error.h&gt;</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &lt;freerdp/event.h&gt;</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &lt;winpr/memory.h&gt;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &lt;winpr/cmdline.h&gt;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &lt;ctype.h&gt;</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#ifdef HAVE_CUPS</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#include &lt;cups/cups.h&gt;</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#include &lt;X11/Xlib.h&gt;</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#include &lt;X11/XKBlib.h&gt;</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkx.h&gt;</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#elif defined(GDK_WINDOWING_WAYLAND)</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkwayland.h&gt;</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#if defined(__FreeBSD__)</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#include &lt;pthread_np.h&gt;</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#include &lt;freerdp/locale/keyboard.h&gt;</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_TOOL_REFRESH 1</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_SCALE 2</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_UNFOCUS 3</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_TOOL_SENDCTRLALTDEL 4</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_DYNRESUPDATE 5</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_MULTIMON 6</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#define REMMINA_RDP_FEATURE_VIEWONLY 7</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#define REMMINA_CONNECTION_TYPE_NONE 0</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"> #define CLPARAM const char</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> #define CLPARAM char</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="www__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7"> 112</a></span>&#160;<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *<a class="code" href="rdp__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a> = NULL;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f"> 114</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> = FALSE;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">/* Compatibility: these functions have been introduced with https://github.com/FreeRDP/FreeRDP/commit/8c5d96784d</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> * and are missing on older FreeRDP, so we add them here.</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> * They should be removed from here after all distributed versions of FreeRDP (libwinpr) will have</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> * CommandLineParseCommaSeparatedValuesEx() onboard.</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> * (C) Copyright goes to the FreeRDP authors.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c"> 123</a></span>&#160;<span class="keyword">static</span> CLPARAM **<a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *list, <span class="keywordtype">size_t</span> *count)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 0, 0)</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> (CLPARAM **)CommandLineParseCommaSeparatedValuesEx(name, list, count);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">char</span> **p;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">char</span> *str;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">size_t</span> nArgs;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">size_t</span> index;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">size_t</span> nCommas;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">size_t</span> prefix, len;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; nCommas = 0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (count == NULL)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; *count = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span> (!list) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (name) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">size_t</span> len = strlen(name);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; p = (<span class="keywordtype">char</span> **)calloc(2UL + len, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span> *));</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span> (p) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">char</span> *dst = (<span class="keywordtype">char</span> *)&amp;p[1];</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; p[0] = dst;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; sprintf_s(dst, len + 1, <span class="stringliteral">&quot;%s&quot;</span>, name);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; *count = 1;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *it = list;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">while</span> ((it = strchr(it, <span class="charliteral">&#39;,&#39;</span>)) != NULL) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; it++;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; nCommas++;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; nArgs = nCommas + 1;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (name)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; nArgs++;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; prefix = (nArgs + 1UL) * <span class="keyword">sizeof</span>(<span class="keywordtype">char</span> *);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; len = strlen(list);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; p = (<span class="keywordtype">char</span> **)calloc(len + prefix + 1, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span> *));</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span> (!p)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; str = &amp;((<span class="keywordtype">char</span> *)p)[prefix];</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; memcpy(str, list, len);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span> (name)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; p[0] = (<span class="keywordtype">char</span> *)name;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">for</span> (index = name ? 1 : 0; index &lt; nArgs; index++) {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">char</span> *comma = strchr(str, <span class="charliteral">&#39;,&#39;</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; p[index] = str;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (comma) {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; str = comma + 1;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; *comma = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; *count = nArgs;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f"> 202</a></span>&#160;<span class="keyword">static</span> CLPARAM **<a class="code" href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f">remmina_rdp_CommandLineParseCommaSeparatedValues</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *list, <span class="keywordtype">size_t</span> *count)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(NULL, list, count);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment"> * End of CommandLineParseCommaSeparatedValuesEx() compatibility and copyright</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29"> 211</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29">rf_process_event_queue</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;{</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; UINT16 flags;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; rdpInput *input;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="structremmina__plugin__rdp__event.html">RemminaPluginRdpEvent</a> *event;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; DISPLAY_CONTROL_MONITOR_LAYOUT *dcml;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; CLIPRDR_FORMAT_DATA_RESPONSE response = { 0 };</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a5d119b1f108fe84c74e6484d48c2a565">event_queue</a> == NULL)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; input = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;input;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">while</span> ((event = (<a class="code" href="structremmina__plugin__rdp__event.html">RemminaPluginRdpEvent</a> *)g_async_queue_try_pop(rfi-&gt;<a class="code" href="structrf__context.html#a5d119b1f108fe84c74e6484d48c2a565">event_queue</a>)) != NULL) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">switch</span> (event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a84797e0cdf4484432740a8946325f126">type</a>) {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7ae248ff32977c650df357c079f9d8b6e2">REMMINA_RDP_EVENT_TYPE_SCANCODE</a>:</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; flags = <span class="keyword">event</span>-&gt;key_event.extended ? KBD_FLAGS_EXTENDED : 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; flags |= <span class="keyword">event</span>-&gt;key_event.up ? KBD_FLAGS_RELEASE : KBD_FLAGS_DOWN;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; input-&gt;KeyboardEvent(input, flags, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a18cb50afaa8b9df1759f87899892fdb6">key_event</a>.key_code);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7ab15f261f1918633711921198fea0029f">REMMINA_RDP_EVENT_TYPE_SCANCODE_UNICODE</a>:</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> * TS_UNICODE_KEYBOARD_EVENT RDP message, see https://msdn.microsoft.com/en-us/library/cc240585.aspx</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; flags = <span class="keyword">event</span>-&gt;key_event.up ? KBD_FLAGS_RELEASE : KBD_FLAGS_DOWN;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; input-&gt;UnicodeKeyboardEvent(input, flags, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a18cb50afaa8b9df1759f87899892fdb6">key_event</a>.unicode_code);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a8c8701fc5ef4ff1196c8d088dd146a5b">REMMINA_RDP_EVENT_TYPE_MOUSE</a>:</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.extended)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; input-&gt;ExtendedMouseEvent(input, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.flags,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.x, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.y);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; input-&gt;MouseEvent(input, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.flags,</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.x, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">mouse_event</a>.y);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7aebb0df0651989a89f3f05e3c4894dd50">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_LIST</a>:</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>-&gt;ClientFormatList(rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a72cd3fa2cc46eb03de7f68d63b2646b2">clipboard_formatlist</a>.pFormatList);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; free(event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a72cd3fa2cc46eb03de7f68d63b2646b2">clipboard_formatlist</a>.pFormatList);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a2e49b2022527a7f87ba0115e644d16d6">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_DATA_RESPONSE</a>:</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; response.msgFlags = (<span class="keyword">event</span>-&gt;clipboard_formatdataresponse.data) ? CB_RESPONSE_OK : CB_RESPONSE_FAIL;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; response.dataLen = <span class="keyword">event</span>-&gt;clipboard_formatdataresponse.size;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; response.requestedFormatData = <span class="keyword">event</span>-&gt;clipboard_formatdataresponse.data;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>-&gt;ClientFormatDataResponse(rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>, &amp;response);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a899b766953e73fd8aa148a9d8f28434b">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_DATA_REQUEST</a>:</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Sending client FormatDataRequest to server&quot;</span>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; gettimeofday(&amp;(rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#af85bab349549714dc18a8938ac60926d">clientformatdatarequest_tv</a>), NULL);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>-&gt;ClientFormatDataRequest(rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">context</a>, event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a008a5e7caebab7b0a5d4f6a48b4c63f6">clipboard_formatdatarequest</a>.pFormatDataRequest);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; free(event-&gt;<a class="code" href="structremmina__plugin__rdp__event.html#a008a5e7caebab7b0a5d4f6a48b4c63f6">clipboard_formatdatarequest</a>.pFormatDataRequest);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a1973a1fe40811ab9a21bc77c23c42a05">REMMINA_RDP_EVENT_TYPE_SEND_MONITOR_LAYOUT</a>:</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;multimon&quot;</span>, FALSE)) {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseMultimon, TRUE);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">/* TODO Add an option for this */</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ForceMultimon, TRUE);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Fullscreen, TRUE);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">/* got some crashes with g_malloc0, to be investigated */</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; dcml = calloc(freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorCount), <span class="keyword">sizeof</span>(DISPLAY_CONTROL_MONITOR_LAYOUT));</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;REMMINA_RDP_EVENT_TYPE_SEND_MONITOR_LAYOUT:&quot;</span>);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span> (!dcml)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">const</span> rdpMonitor *base = freerdp_settings_get_pointer(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorDefArray);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">for</span> (gint i = 0; i &lt; freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorCount); ++i) {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">const</span> rdpMonitor *current = &amp;base[i];</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Sending display layout for monitor n° %d&quot;</span>, i);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; dcml[i].Flags = (current-&gt;is_primary ? DISPLAY_CONTROL_MONITOR_PRIMARY : 0);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d is primary: %d&quot;</span>, i, dcml[i].Flags);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; dcml[i].Left = current-&gt;x;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d x: %d&quot;</span>, i, dcml[i].Left);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; dcml[i].Top = current-&gt;y;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d y: %d&quot;</span>, i, dcml[i].Top);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; dcml[i].Width = current-&gt;width;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d width: %d&quot;</span>, i, dcml[i].Width);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; dcml[i].Height = current-&gt;height;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d height: %d&quot;</span>, i, dcml[i].Height);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; dcml[i].PhysicalWidth = current-&gt;attributes.physicalWidth;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d physical width: %d&quot;</span>, i, dcml[i].PhysicalWidth);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; dcml[i].PhysicalHeight = current-&gt;attributes.physicalHeight;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d physical height: %d&quot;</span>, i, dcml[i].PhysicalHeight);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span> (current-&gt;attributes.orientation)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; dcml[i].Orientation = current-&gt;attributes.orientation;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; dcml[i].Orientation = <span class="keyword">event</span>-&gt;monitor_layout.desktopOrientation;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor %d orientation: %d&quot;</span>, i, dcml[i].Orientation);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; dcml[i].DesktopScaleFactor = <span class="keyword">event</span>-&gt;monitor_layout.desktopScaleFactor;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; dcml[i].DeviceScaleFactor = <span class="keyword">event</span>-&gt;monitor_layout.deviceScaleFactor;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a>-&gt;SendMonitorLayout(rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorCount), dcml);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; g_free(dcml);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; dcml = g_malloc0(<span class="keyword">sizeof</span>(DISPLAY_CONTROL_MONITOR_LAYOUT));</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">if</span> (dcml) {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; dcml-&gt;Flags = DISPLAY_CONTROL_MONITOR_PRIMARY;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; dcml-&gt;Width = <span class="keyword">event</span>-&gt;monitor_layout.width;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; dcml-&gt;Height = <span class="keyword">event</span>-&gt;monitor_layout.height;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; dcml-&gt;Orientation = <span class="keyword">event</span>-&gt;monitor_layout.desktopOrientation;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; dcml-&gt;DesktopScaleFactor = <span class="keyword">event</span>-&gt;monitor_layout.desktopScaleFactor;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; dcml-&gt;DeviceScaleFactor = <span class="keyword">event</span>-&gt;monitor_layout.deviceScaleFactor;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a>-&gt;SendMonitorLayout(rfi-&gt;<a class="code" href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">dispcontext</a>, 1, dcml);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; g_free(dcml); \</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">case</span> <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a6b5a1dbb05d7f63d451b84ea5ec85c03">REMMINA_RDP_EVENT_DISCONNECT</a>:</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">/* Disconnect requested via GUI (i.e: tab destroy/close) */</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; freerdp_abort_connect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; g_free(event);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;}</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af"> 339</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af">remmina_rdp_tunnel_init</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">/* Opens the optional SSH tunnel if needed.</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment"> * Used also when reopening the same tunnel for a FreeRDP reconnect.</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment"> * Returns TRUE if all OK, and setups correct rfi-&gt;Settings values</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment"> * with connection and certificate parameters */</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; gchar *hostport;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; gchar *s;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; gchar *host;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; gchar *cert_host;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; gint cert_port;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; gint port;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Tunnel init&quot;</span>);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; hostport = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ae95121f8f944c058d4f0683073f79183">protocol_plugin_start_direct_tunnel</a>(gp, 3389, FALSE);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span> (hostport == NULL)</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a6fdfd3063906f49157225f536537bb0f">get_server_port</a>(hostport, 3389, &amp;host, &amp;port);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span> (host[0] == 0)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;protocol_plugin_start_direct_tunnel() returned %s&quot;</span>, hostport);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; cert_host = host;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; cert_port = port;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (!rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a>) {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">/* settings-&gt;CertificateName and settings-&gt;ServerHostname is created</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment"> * only on 1st connect, not on reconnections */</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname, host);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">if</span> (cert_port == 3389) {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_CertificateName, cert_host);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; s = g_strdup_printf(<span class="stringliteral">&quot;%s:%d&quot;</span>, cert_host, cert_port);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_CertificateName, s);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; g_free(s);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Tunnel has been optionally initialized. Now connecting to %s:%d&quot;</span>, host, port);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span> (cert_host != host) g_free(cert_host);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; g_free(host);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; g_free(hostport);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerPort, port);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;}</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a9f14eee602089f6ff152e1c93c44c3e9"> 398</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a9f14eee602089f6ff152e1c93c44c3e9">rf_auto_reconnect</a>(<a class="code" href="structrf__context.html">rfContext</a> *rfi)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;{</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; rdpSettings *settings = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;settings;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a> *ui;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; time_t treconn;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; gchar *cval;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; gint maxattempts;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = TRUE;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a> = FALSE;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="comment">/* Get the value set in FreeRDP_AutoReconnectMaxRetries (20) */</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; maxattempts = freerdp_settings_get_uint32(settings, FreeRDP_AutoReconnectMaxRetries);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;maxattempts from default: %d&quot;</span>, maxattempts);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="comment">/* Get the value from the global preferences if any */</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span> ((cval = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">pref_get_value</a>(<span class="stringliteral">&quot;rdp_reconnect_attempts&quot;</span>)) != NULL)</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; maxattempts = atoi(cval);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;maxattempts from general preferences: %d&quot;</span>, maxattempts);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">/* Get the value from the profile if any, otherwise uses the value of maxattempts */</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; maxattempts = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;rdp_reconnect_attempts&quot;</span>, maxattempts);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;maxattempts from general plugin: %d&quot;</span>, maxattempts);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="comment">/* If maxattemps is &lt;= 0, we get the value from FreeRDP_AutoReconnectMaxRetries (20) */</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">if</span> (maxattempts &lt;= 0)</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; maxattempts = freerdp_settings_get_uint32(settings, FreeRDP_AutoReconnectMaxRetries);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_AutoReconnectMaxRetries, maxattempts);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;maxattempts set to: %d&quot;</span>, maxattempts);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa0b949ab1e2f06b7d5efeccc924efaee">reconnect_maxattempts</a> = maxattempts;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a4c35800dba8da687f7f56e3bb7a23413">reconnect_nattempt</a> = 0;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">/* Only auto reconnect on network disconnects. */</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">switch</span> (freerdp_error_info(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>)) {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">case</span> ERRINFO_GRAPHICS_SUBSYSTEM_FAILED:</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="comment">/* Disconnected by server hitting a bug or resource limit */</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">case</span> ERRINFO_SUCCESS:</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="comment">/* A network disconnect was detected */</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = FALSE;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span> (!freerdp_settings_get_bool(settings, FreeRDP_AutoReconnectionEnabled)) {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="comment">/* No auto-reconnect - just quit */</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = FALSE;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="comment">/* A network disconnect was detected and we should try to reconnect */</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] network disconnection detected, initiating reconnection attempt&quot;</span>,</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7">REMMINA_RDP_UI_RECONNECT_PROGRESS</a>;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>, ui);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">/* Sleep half a second to allow:</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="comment"> * - processing of the UI event we just pushed on the queue</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="comment"> * - better network conditions</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="comment"> * Remember: We hare on a thread, so the main gui won’t lock */</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; usleep(500000);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">/* Perform an auto-reconnect. */</span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">while</span> (TRUE) {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="comment">/* Quit retrying if max retries has been exceeded */</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a4c35800dba8da687f7f56e3bb7a23413">reconnect_nattempt</a>++ &gt;= rfi-&gt;<a class="code" href="structrf__context.html#aa0b949ab1e2f06b7d5efeccc924efaee">reconnect_maxattempts</a>) {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] maximum number of reconnection attempts exceeded.&quot;</span>,</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a>) {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] reconnect request loop interrupted by user.&quot;</span>,</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="comment">/* Attempt the next reconnect */</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] reconnection, attempt #%d of %d&quot;</span>,</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname), rfi-&gt;<a class="code" href="structrf__context.html#a4c35800dba8da687f7f56e3bb7a23413">reconnect_nattempt</a>, rfi-&gt;<a class="code" href="structrf__context.html#aa0b949ab1e2f06b7d5efeccc924efaee">reconnect_maxattempts</a>);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7">REMMINA_RDP_UI_RECONNECT_PROGRESS</a>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>, ui);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; treconn = time(NULL);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">/* Reconnect the SSH tunnel, if needed */</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af">remmina_rdp_tunnel_init</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>)) {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] unable to recreate tunnel with remmina_rdp_tunnel_init.&quot;</span>,</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span> (freerdp_reconnect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>)) {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="comment">/* Reconnection is successful */</span></div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] reconnected.&quot;</span>, freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = FALSE;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">/* Wait until 5 secs have elapsed from last reconnect attempt, while checking for rfi-&gt;stop_reconnecting_requested */</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">while</span> (time(NULL) - treconn &lt; 5) {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a>)</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; usleep(200000); <span class="comment">// 200ms sleep</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = FALSE;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;}</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a915615896fa6ad63f6b89e52401a0144"> 515</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a915615896fa6ad63f6b89e52401a0144">rf_begin_paint</a>(rdpContext *context)</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;{</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; rdpGdi *gdi;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span> (!context)</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; gdi = context-&gt;gdi;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">if</span> (!gdi || !gdi-&gt;primary || !gdi-&gt;primary-&gt;hdc || !gdi-&gt;primary-&gt;hdc-&gt;hwnd)</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;}</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ab94fa2ca38e70e8c4b168f7e67a24d45"> 530</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#ab94fa2ca38e70e8c4b168f7e67a24d45">rf_end_paint</a>(rdpContext *context)</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;{</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; rdpGdi *gdi;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a> *ui;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordtype">int</span> i, ninvalid;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="structregion.html">region</a> *reg;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; HGDI_RGN cinvalid;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; gdi = context-&gt;gdi;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)context;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">if</span> (gdi == NULL || gdi-&gt;primary == NULL || gdi-&gt;primary-&gt;hdc == NULL || gdi-&gt;primary-&gt;hdc-&gt;hwnd == NULL)</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">if</span> (gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;invalid-&gt;null)</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span> (gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;ninvalid &lt; 1)</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; ninvalid = gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;ninvalid;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; cinvalid = gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;cinvalid;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; reg = (<a class="code" href="structregion.html">region</a> *)g_malloc(<span class="keyword">sizeof</span>(<a class="code" href="structregion.html">region</a>) * ninvalid);</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; ninvalid; i++) {</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; reg[i].<a class="code" href="structregion.html#ad258e7b02e819b46656294de5e4bd8ad">x</a> = cinvalid[i].x;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; reg[i].<a class="code" href="structregion.html#a97015e361d0cbedf7dcab10fbea95b10">y</a> = cinvalid[i].y;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; reg[i].<a class="code" href="structregion.html#a3b8e9f37558f5a790945b9dc1cbcadb6">w</a> = cinvalid[i].w;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; reg[i].<a class="code" href="structregion.html#a585e1a437e6e8f8a80785aec2f2762c8">h</a> = cinvalid[i].h;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072acd86c5f1b34b0d7168c94892cfd2cb9e">REMMINA_RDP_UI_UPDATE_REGIONS</a>;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#acef425d73af8935a8bc784d56f7b125c">reg</a>.ninvalid = ninvalid;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#acef425d73af8935a8bc784d56f7b125c">reg</a>.ureg = reg;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <a class="code" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a>(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>, ui);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;invalid-&gt;null = TRUE;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; gdi-&gt;primary-&gt;hdc-&gt;hwnd-&gt;ninvalid = 0;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;}</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a992a905d014d83a8de736ffbd85fe901"> 577</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a992a905d014d83a8de736ffbd85fe901">rf_desktop_resize</a>(rdpContext *context)</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;{</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a> *ui;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; UINT32 w, h;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)context;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; w = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; h = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#abaf7f57e2336f6e5c257e9c30fedc047">protocol_plugin_set_width</a>(gp, w);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">protocol_plugin_set_height</a>(gp, h);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072aa5f6f338ffaa4bed53b225cf54b50000">REMMINA_RDP_UI_EVENT</a>;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a87d27be6d29a42e284192bad1a6f1a32">event</a>.type = <a class="code" href="rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35ad2dd5f6251de0ac7afe2f962c829aa48">REMMINA_RDP_UI_EVENT_DESTROY_CAIRO_SURFACE</a>;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <a class="code" href="rdp__event_8c.html#ab5fe43c1b1b77c39f118d2581942eb81">remmina_rdp_event_queue_ui_sync_retint</a>(gp, ui);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="comment">/* Tell libfreerdp to change its internal GDI bitmap width and heigt,</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="comment"> * this will also destroy gdi-&gt;primary_buffer, making our rfi-&gt;surface invalid */</span></div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; gdi_resize(((rdpContext *)rfi)-&gt;gdi, w, h);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="comment">/* Call to remmina_rdp_event_update_scale(gp) on the main UI thread,</span></div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="comment"> * this will recreate rfi-&gt;surface from gdi-&gt;primary_buffer */</span></div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072aa5f6f338ffaa4bed53b225cf54b50000">REMMINA_RDP_UI_EVENT</a>;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a87d27be6d29a42e284192bad1a6f1a32">event</a>.type = <a class="code" href="rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35a5bec41fd19576fc5c3e397366461dfe4">REMMINA_RDP_UI_EVENT_UPDATE_SCALE</a>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <a class="code" href="rdp__event_8c.html#ab5fe43c1b1b77c39f118d2581942eb81">remmina_rdp_event_queue_ui_sync_retint</a>(gp, ui);</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a734f491f20072acdcbebb41e36bafe2f">protocol_plugin_desktop_resize</a>(gp);</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;}</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde"> 615</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde">rf_play_sound</a>(rdpContext *context, <span class="keyword">const</span> PLAY_SOUND_UPDATE *play_sound)</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;{</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; GdkDisplay *disp;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)context;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; disp = gtk_widget_get_display(GTK_WIDGET(gp));</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; gdk_display_beep(disp);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;}</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div><div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4"> 631</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4">rf_keyboard_set_indicators</a>(rdpContext *context, UINT16 led_flags)</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;{</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; GdkDisplay *disp;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)context;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; disp = gtk_widget_get_display(GTK_WIDGET(gp));</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">if</span> (GDK_IS_X11_DISPLAY(disp)) {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">/* TODO: We are not on the main thread. Will X.Org complain? */</span></div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; Display *x11_display;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; x11_display = gdk_x11_display_get_xdisplay(disp);</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; XkbLockModifiers(x11_display, XkbUseCoreKbd,</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; LockMask | Mod2Mask,</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; ((led_flags &amp; KBD_SYNC_CAPS_LOCK) ? LockMask : 0) |</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; ((led_flags &amp; KBD_SYNC_NUM_LOCK) ? Mod2Mask : 0)</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; );</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="comment">/* TODO: Add support to KANA_LOCK and SCROLL_LOCK */</span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; }</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;}</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a2bce72cf8deae18499d422515d3f546c"> 660</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a2bce72cf8deae18499d422515d3f546c">rf_keyboard_set_ime_status</a>(rdpContext *context, UINT16 imeId, UINT32 imeState,</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; UINT32 imeConvMode)</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;{</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">if</span> (!context)</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="comment">/* Unimplemented, we ignore it */</span></div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;}</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a0bc4113554537fd1a9e4c8bb9201e789"> 672</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a0bc4113554537fd1a9e4c8bb9201e789">remmina_rdp_pre_connect</a>(freerdp *instance)</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;{</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; rdpChannels *channels;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; rdpSettings *settings;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; rdpContext *context = instance-&gt;context;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; settings = instance-&gt;settings;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; channels = context-&gt;channels;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_OsMajorType, OSMAJORTYPE_UNIX);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_OsMinorType, OSMINORTYPE_UNSPECIFIED);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_BitmapCacheEnabled, TRUE);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_OffscreenSupportLevel, 1);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; PubSub_SubscribeChannelConnected(instance-&gt;context-&gt;pubSub,</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <a class="code" href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">remmina_rdp_OnChannelConnectedEventHandler</a>);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; PubSub_SubscribeChannelDisconnected(instance-&gt;context-&gt;pubSub,</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <a class="code" href="rdp__channels_8c.html#a2d82ea9a38463d03c07271a356ccaec2">remmina_rdp_OnChannelDisconnectedEventHandler</a>);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">if</span> (!freerdp_client_load_addins(channels, settings))</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;}</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ac8d1ec82167ad20b7634ed545d4badbc"> 697</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#ac8d1ec82167ad20b7634ed545d4badbc">remmina_rdp_post_connect</a>(freerdp *instance)</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;{</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a> *ui;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; UINT32 freerdp_local_color_format;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">postconnect_error</a> = REMMINA_POSTCONNECT_ERROR_OK;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a> = FALSE; <span class="comment">// We authenticated!</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a9d28c775fe1ee90ad48941d753564a76">srcBpp</a> = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec) == FALSE)</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a91f20005b39ad9e1073cf25bf6d7c2f2">sw_gdi</a> = TRUE;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <a class="code" href="rdp__graphics_8c.html#a95732c40c35499f3440715b6526279b1">rf_register_graphics</a>(instance-&gt;context-&gt;graphics);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;bpp: %d&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a40e89e126e5dd96a3f67e6f945a8867b">bpp</a>);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">switch</span> (rfi-&gt;<a class="code" href="structrf__context.html#a40e89e126e5dd96a3f67e6f945a8867b">bpp</a>) {</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">case</span> 24:</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;CAIRO_FORMAT_RGB24&quot;</span>);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; freerdp_local_color_format = PIXEL_FORMAT_BGRX32;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa13bb4f72f3024d81e9051de4bd65ec0">cairo_format</a> = CAIRO_FORMAT_RGB24;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">case</span> 32:</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;CAIRO_FORMAT_RGB24&quot;</span>);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; freerdp_local_color_format = PIXEL_FORMAT_BGRA32;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa13bb4f72f3024d81e9051de4bd65ec0">cairo_format</a> = CAIRO_FORMAT_RGB24;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;CAIRO_FORMAT_RGB16_565&quot;</span>);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; freerdp_local_color_format = PIXEL_FORMAT_RGB16;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa13bb4f72f3024d81e9051de4bd65ec0">cairo_format</a> = CAIRO_FORMAT_RGB16_565;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">if</span> (!gdi_init(instance, freerdp_local_color_format)) {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">postconnect_error</a> = REMMINA_POSTCONNECT_ERROR_GDI_INIT;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">if</span> (instance-&gt;context-&gt;codecs-&gt;h264 == NULL &amp;&amp; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264)) {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; gdi_free(instance);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">postconnect_error</a> = REMMINA_POSTCONNECT_ERROR_NO_H264;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; }</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="comment">// pointer_cache_register_callbacks(instance-&gt;update);</span></div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; instance-&gt;update-&gt;BeginPaint = <a class="code" href="rdp__plugin_8c.html#a915615896fa6ad63f6b89e52401a0144">rf_begin_paint</a>;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; instance-&gt;update-&gt;EndPaint = <a class="code" href="rdp__plugin_8c.html#ab94fa2ca38e70e8c4b168f7e67a24d45">rf_end_paint</a>;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; instance-&gt;update-&gt;DesktopResize = <a class="code" href="rdp__plugin_8c.html#a992a905d014d83a8de736ffbd85fe901">rf_desktop_resize</a>;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; instance-&gt;update-&gt;PlaySound = <a class="code" href="rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde">rf_play_sound</a>;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; instance-&gt;update-&gt;SetKeyboardIndicators = <a class="code" href="rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4">rf_keyboard_set_indicators</a>;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; instance-&gt;update-&gt;SetKeyboardImeStatus = <a class="code" href="rdp__plugin_8c.html#a2bce72cf8deae18499d422515d3f546c">rf_keyboard_set_ime_status</a>;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <a class="code" href="rdp__cliprdr_8c.html#ac3300142e3c2f416896948681ecd45f3">remmina_rdp_clipboard_init</a>(rfi);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; ui = g_new0(<a class="code" href="structremmina__plugin__rdp__ui__object.html">RemminaPluginRdpUiObject</a>, 1);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; ui-&gt;<a class="code" href="structremmina__plugin__rdp__ui__object.html#a46d939889fba73c1360f924efaa09262">type</a> = <a class="code" href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072ad3ced07ddeda0100b59ca9c8af47bbe9">REMMINA_RDP_UI_CONNECTED</a>;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a>(gp, ui);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;}</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af33e88ae9c13745eb6d36f36418e3676"> 772</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#af33e88ae9c13745eb6d36f36418e3676">remmina_rdp_authenticate</a>(freerdp *instance, <span class="keywordtype">char</span> **username, <span class="keywordtype">char</span> **password, <span class="keywordtype">char</span> **domain)</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;{</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; gchar *s_username, *s_password, *s_domain;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; gint ret;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; gboolean save;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; gboolean disablepasswordstoring;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; disablepasswordstoring = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, FALSE);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; ret = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a9b4cfe0a97a34260e58784feef693704">protocol_plugin_init_auth</a>(gp,</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; (disablepasswordstoring ? 0 : <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>) | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a> | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>,</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; _(<span class="stringliteral">&quot;Enter RDP authentication credentials&quot;</span>),</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>),</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>),</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>),</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; NULL);</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span> (ret == GTK_RESPONSE_OK) {</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; s_username = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">protocol_plugin_init_get_username</a>(gp);</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">if</span> (s_username) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Username, s_username);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; s_password = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">protocol_plugin_init_get_password</a>(gp);</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">if</span> (s_password) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Password, s_password);</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; s_domain = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aaa37f5061689c3663087a19f598e550b">protocol_plugin_init_get_domain</a>(gp);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">if</span> (s_domain) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Domain, s_domain);</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>, s_username);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>, s_domain);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; save = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#af2b857b2de1af3621f543b810f68b17b">protocol_plugin_init_get_savepassword</a>(gp);</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (save) {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="comment">// User has requested to save credentials. We put the password</span></div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="comment">// into remminafile-&gt;settings. It will be saved later, on successful connection, by</span></div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="comment">// rcw.c</span></div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, s_password);</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, NULL);</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">if</span> (s_username) g_free(s_username);</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">if</span> (s_password) g_free(s_password);</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">if</span> (s_domain) g_free(s_domain);</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;}</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a71166233c6c9e4714cbdb0d74ce7c579"> 831</a></span>&#160;<span class="keyword">static</span> BOOL <a class="code" href="rdp__plugin_8c.html#a71166233c6c9e4714cbdb0d74ce7c579">remmina_rdp_gw_authenticate</a>(freerdp *instance, <span class="keywordtype">char</span> **username, <span class="keywordtype">char</span> **password, <span class="keywordtype">char</span> **domain)</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;{</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; gchar *s_username, *s_password, *s_domain;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; gint ret;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; gboolean save;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; gboolean disablepasswordstoring;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; gboolean basecredforgw;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">if</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_server&quot;</span>))</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; disablepasswordstoring = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, FALSE);</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; basecredforgw = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;base-cred-for-gw&quot;</span>, FALSE);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">if</span> (basecredforgw) {</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; ret = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a9b4cfe0a97a34260e58784feef693704">protocol_plugin_init_auth</a>(gp,</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; (disablepasswordstoring ? 0 : <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>) | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a> | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>,</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; _(<span class="stringliteral">&quot;Enter RDP authentication credentials&quot;</span>),</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>),</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>),</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>),</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; NULL);</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; ret = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a9b4cfe0a97a34260e58784feef693704">protocol_plugin_init_auth</a>(gp,</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; (disablepasswordstoring ? 0 : <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a>) | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a> | <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a>,</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; _(<span class="stringliteral">&quot;Enter RDP gateway authentication credentials&quot;</span>),</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>),</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>),</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>),</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; NULL);</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; }</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">if</span> (ret == GTK_RESPONSE_OK) {</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; s_username = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">protocol_plugin_init_get_username</a>(gp);</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">if</span> (s_username) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername, s_username);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; s_password = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">protocol_plugin_init_get_password</a>(gp);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">if</span> (s_password) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPassword, s_password);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; s_domain = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aaa37f5061689c3663087a19f598e550b">protocol_plugin_init_get_domain</a>(gp);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">if</span> (s_domain) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain, s_domain);</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; save = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#af2b857b2de1af3621f543b810f68b17b">protocol_plugin_init_get_savepassword</a>(gp);</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">if</span> (basecredforgw) {</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>, s_username);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>, s_domain);</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">if</span> (save)</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, s_password);</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, NULL);</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>, s_username);</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>, s_domain);</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">if</span> (save)</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>, s_password);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>, NULL);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; }</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">if</span> (s_username) g_free(s_username);</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">if</span> (s_password) g_free(s_password);</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">if</span> (s_domain) g_free(s_domain);</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; }</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;}</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div><div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a23cb647672c113276cbf86689f2f9054"> 911</a></span>&#160;<span class="keyword">static</span> DWORD <a class="code" href="rdp__plugin_8c.html#a23cb647672c113276cbf86689f2f9054">remmina_rdp_verify_certificate_ex</a>(freerdp *instance, <span class="keyword">const</span> <span class="keywordtype">char</span> *host, UINT16 port,</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *common_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *subject,</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *issuer, <span class="keyword">const</span> <span class="keywordtype">char</span> *fingerprint, DWORD flags)</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;{</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; gint status;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; status = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aeaf95501d1d2ce27589cfdf69511009c">protocol_plugin_init_certificate</a>(gp, subject, issuer, fingerprint);</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordflow">if</span> (status == GTK_RESPONSE_OK)</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;}</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;<span class="keyword">static</span> DWORD</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;<a class="code" href="rdp__plugin_8c.html#a4b10b6decd6ea742b10c7572f2453d9e">remmina_rdp_verify_certificate</a>(freerdp *instance, <span class="keyword">const</span> <span class="keywordtype">char</span> *common_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *subject, <span class="keyword">const</span> <span class="keywordtype">char</span> *issuer, <span class="keyword">const</span> <span class="keywordtype">char</span> *fingerprint, BOOL host_mismatch) __attribute__ ((unused));</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;<span class="keyword">static</span> DWORD</div><div class="line"><a name="l00934"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a4b10b6decd6ea742b10c7572f2453d9e"> 934</a></span>&#160;<a class="code" href="rdp__plugin_8c.html#a4b10b6decd6ea742b10c7572f2453d9e">remmina_rdp_verify_certificate</a>(freerdp *instance, <span class="keyword">const</span> <span class="keywordtype">char</span> *common_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *subject,</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *issuer, <span class="keyword">const</span> <span class="keywordtype">char</span> *fingerprint, BOOL host_mismatch)</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;{</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; gint status;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; status = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aeaf95501d1d2ce27589cfdf69511009c">protocol_plugin_init_certificate</a>(gp, subject, issuer, fingerprint);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">if</span> (status == GTK_RESPONSE_OK)</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;}</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a6d333b2bc5bfea17c71159ca5064ba84"> 953</a></span>&#160;<span class="keyword">static</span> DWORD <a class="code" href="rdp__plugin_8c.html#a6d333b2bc5bfea17c71159ca5064ba84">remmina_rdp_verify_changed_certificate_ex</a>(freerdp *instance, <span class="keyword">const</span> <span class="keywordtype">char</span> *host, UINT16 port,</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *common_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *subject,</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *issuer, <span class="keyword">const</span> <span class="keywordtype">char</span> *fingerprint,</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *old_subject, <span class="keyword">const</span> <span class="keywordtype">char</span> *old_issuer,</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *old_fingerprint, DWORD flags)</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;{</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; gint status;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; status = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#af45af14b2b083a7093f36b8cafda1cee">protocol_plugin_changed_certificate</a>(gp, subject, issuer, fingerprint, old_fingerprint);</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">if</span> (status == GTK_RESPONSE_OK)</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;}</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;</div><div class="line"><a name="l00975"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ab9e7535ac53b25e8923a3b9fd1622046"> 975</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#ab9e7535ac53b25e8923a3b9fd1622046">remmina_rdp_post_disconnect</a>(freerdp *instance)</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;{</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">if</span> (!instance || !instance-&gt;context)</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; PubSub_UnsubscribeChannelConnected(instance-&gt;context-&gt;pubSub,</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <a class="code" href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">remmina_rdp_OnChannelConnectedEventHandler</a>);</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; PubSub_UnsubscribeChannelDisconnected(instance-&gt;context-&gt;pubSub,</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <a class="code" href="rdp__channels_8c.html#a2d82ea9a38463d03c07271a356ccaec2">remmina_rdp_OnChannelDisconnectedEventHandler</a>);</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="comment">/* The remaining cleanup will be continued on main thread by complete_cleanup_on_main_thread() */</span></div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;}</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;</div><div class="line"><a name="l00990"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#adb2d2f801618ad1e5ff14b4ebf2a9eb9"> 990</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#adb2d2f801618ad1e5ff14b4ebf2a9eb9">remmina_rdp_main_loop</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;{</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; DWORD status;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; gchar buf[100];</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">while</span> (!freerdp_shall_disconnect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>)) {</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; HANDLE handles[64]={0};</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; DWORD nCount = freerdp_get_event_handles(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context, &amp;handles[0], 64);</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a522c742a333cf0603dfa7d06a7376669">event_handle</a>)</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; handles[nCount++] = rfi-&gt;<a class="code" href="structrf__context.html#a522c742a333cf0603dfa7d06a7376669">event_handle</a>;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; handles[nCount++] = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context-&gt;abortEvent;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <span class="keywordflow">if</span> (nCount == 0) {</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;freerdp_get_event_handles failed\n&quot;</span>);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; }</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; status = WaitForMultipleObjects(nCount, handles, FALSE, 100);</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">if</span> (status == WAIT_FAILED) {</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;WaitForMultipleObjects failed with %lu\n&quot;</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)status);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; }</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a522c742a333cf0603dfa7d06a7376669">event_handle</a> &amp;&amp; WaitForSingleObject(rfi-&gt;<a class="code" href="structrf__context.html#a522c742a333cf0603dfa7d06a7376669">event_handle</a>, 0) == WAIT_OBJECT_0) {</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29">rf_process_event_queue</a>(gp)) {</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;Could not process local keyboard/mouse event queue\n&quot;</span>);</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; }</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keywordflow">if</span> (read(rfi-&gt;<a class="code" href="structrf__context.html#a539feef609228a91c5e54d5da837bb7a">event_pipe</a>[0], buf, <span class="keyword">sizeof</span>(buf))) {</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; }</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; }</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="comment">/* Check if a processed event called freerdp_abort_connect() and exit if true */</span></div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="keywordflow">if</span> (WaitForSingleObject(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context-&gt;abortEvent, 0) == WAIT_OBJECT_0)</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="comment">/* Session disconnected by local user action */</span></div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">if</span> (!freerdp_check_event_handles(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context)) {</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="rdp__plugin_8c.html#a9f14eee602089f6ff152e1c93c44c3e9">rf_auto_reconnect</a>(rfi)) {</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="comment">/* Reset the possible reason/error which made us doing many reconnection reattempts and continue */</span></div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, NULL);</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; }</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">if</span> (freerdp_get_last_error(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context) == FREERDP_ERROR_SUCCESS)</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;Could not check FreeRDP file descriptor\n&quot;</span>);</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; }</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; }</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keyword">const</span> gchar *host = freerdp_settings_get_string (rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="comment">// TRANSLATORS: the placeholder may be either an IP/FQDN or a server hostname</span></div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; REMMINA_PLUGIN_AUDIT(_(<span class="stringliteral">&quot;Disconnected from %s via RDP&quot;</span>), host);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; freerdp_disconnect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>);</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;RDP client disconnected&quot;</span>);</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;}</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div><div class="line"><a name="l01049"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a5d1951ac829e885ee7f4955195b5204a"> 1049</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rdp__plugin_8c.html#a5d1951ac829e885ee7f4955195b5204a">remmina_rdp_load_static_channel_addin</a>(rdpChannels *channels, rdpSettings *settings, <span class="keywordtype">char</span> *name, <span class="keywordtype">void</span> *data)</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;{</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; PVIRTUALCHANNELENTRY entry = NULL;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; PVIRTUALCHANNELENTRYEX entryEx = NULL;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; entryEx = (PVIRTUALCHANNELENTRYEX)(<span class="keywordtype">void</span> *)freerdp_load_channel_addin_entry(</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; name, NULL, NULL, FREERDP_ADDIN_CHANNEL_STATIC | FREERDP_ADDIN_CHANNEL_ENTRYEX);</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">if</span> (!entryEx)</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; entry = freerdp_load_channel_addin_entry(name, NULL, NULL, FREERDP_ADDIN_CHANNEL_STATIC);</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordflow">if</span> (entryEx) {</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">if</span> (freerdp_channels_client_load_ex(channels, settings, entryEx, data) == 0) {</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;loading channel %s\n&quot;</span>, name);</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; }</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (entry) {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <span class="keywordflow">if</span> (freerdp_channels_client_load(channels, settings, entry, data) == 0) {</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; fprintf(stderr, <span class="stringliteral">&quot;loading channel %s\n&quot;</span>, name);</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; }</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;}</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;</div><div class="line"><a name="l01076"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a32a408f4657dd9778d08923f8942e46a"> 1076</a></span>&#160;<span class="keyword">static</span> gchar *<a class="code" href="rdp__plugin_8c.html#a32a408f4657dd9778d08923f8942e46a">remmina_rdp_find_prdriver</a>(<span class="keywordtype">char</span> *smap, <span class="keywordtype">char</span> *prn)</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;{</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordtype">char</span> c, *p, *dr;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordtype">int</span> matching;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordtype">size_t</span> sz;</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keyword">enum</span> { S_WAITPR,</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; S_INPRINTER,</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; S_WAITCOLON,</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; S_WAITDRIVER,</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; S_INDRIVER,</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; S_WAITSEMICOLON } state = S_WAITPR;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; matching = 0;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keywordflow">while</span> ((c = *smap++) != 0) {</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keywordflow">switch</span> (state) {</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">case</span> S_WAITPR:</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">if</span> (c != <span class="charliteral">&#39;\&quot;&#39;</span>) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; state = S_INPRINTER;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; p = prn;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; matching = 1;</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordflow">case</span> S_INPRINTER:</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keywordflow">if</span> (matching &amp;&amp; c == *p &amp;&amp; *p != 0) {</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; p++;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\&quot;&#39;</span>) {</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="keywordflow">if</span> (*p != 0)</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; matching = 0;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; state = S_WAITCOLON;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; matching = 0;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; }</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">case</span> S_WAITCOLON:</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keywordflow">if</span> (c != <span class="charliteral">&#39;:&#39;</span>)</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; state = S_WAITDRIVER;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">case</span> S_WAITDRIVER:</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">if</span> (c != <span class="charliteral">&#39;\&quot;&#39;</span>)</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; state = S_INDRIVER;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; dr = smap;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">case</span> S_INDRIVER:</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\&quot;&#39;</span>) {</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">if</span> (matching)</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">goto</span> found;</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; state = S_WAITSEMICOLON;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; }</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">case</span> S_WAITSEMICOLON:</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">if</span> (c != <span class="charliteral">&#39;;&#39;</span>)</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; state = S_WAITPR;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; }</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;found:</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; sz = smap - dr;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; p = (<span class="keywordtype">char</span> *)malloc(sz);</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; memcpy(p, dr, sz);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; p[sz - 1] = 0;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keywordflow">return</span> p;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;}</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="preprocessor">#ifdef HAVE_CUPS</span></div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div><div class="line"><a name="l01151"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a9f5c241426816e49f95982b9e3d6bddf"> 1151</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rdp__plugin_8c.html#a9f5c241426816e49f95982b9e3d6bddf">remmina_rdp_set_printers</a>(<span class="keywordtype">void</span> *user_data, <span class="keywordtype">unsigned</span> flags, cups_dest_t *dest)</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;{</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)user_data;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keyword">const</span> gchar *s = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;printer_overrides&quot;</span>);</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; RDPDR_PRINTER *printer;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; printer = (RDPDR_PRINTER *)calloc(1, <span class="keyword">sizeof</span>(RDPDR_PRINTER));</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; RDPDR_DEVICE *pdev;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; pdev = &amp;(printer-&gt;device);</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; RDPDR_PRINTER *pdev;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; pdev = printer;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; pdev-&gt;Type = RDPDR_DTYP_PRINT;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Printer Type: %d&quot;</span>, pdev-&gt;Type);</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectPrinters, TRUE);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Destination: %s&quot;</span>, dest-&gt;name);</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="keywordflow">if</span> (!(pdev-&gt;Name = _strdup(dest-&gt;name))) {</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; free(printer);</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; }</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Printer Name: %s&quot;</span>, pdev-&gt;Name);</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">if</span> (s) {</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; gchar *d = <a class="code" href="rdp__plugin_8c.html#a32a408f4657dd9778d08923f8942e46a">remmina_rdp_find_prdriver</a>(strdup(s), pdev-&gt;Name);</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keywordflow">if</span> (d) {</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; printer-&gt;DriverName = strdup(d);</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Printer DriverName set to: %s&quot;</span>, printer-&gt;DriverName);</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; g_free(d);</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; free(pdev-&gt;Name);</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; free(printer);</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; }</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="comment">/* We set to a default driver*/</span></div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; printer-&gt;DriverName = _strdup(<span class="stringliteral">&quot;MS Publisher Imagesetter&quot;</span>);</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; }</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Printer Driver: %s&quot;</span>, printer-&gt;DriverName);</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keywordflow">if</span> (!freerdp_device_collection_add(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, (RDPDR_DEVICE *)printer)) {</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; free(printer-&gt;DriverName);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; free(pdev-&gt;Name);</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; free(printer);</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; }</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;}</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_CUPS */</span><span class="preprocessor"></span></div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;<span class="comment">/* Send Ctrl+Alt+Del keystrokes to the plugin drawing_area widget */</span></div><div class="line"><a name="l01232"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a04920ffa78f21d63806d544fcca9c56e"> 1232</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#a04920ffa78f21d63806d544fcca9c56e">remmina_rdp_send_ctrlaltdel</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;{</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; guint keys[] = { GDK_KEY_Control_L, GDK_KEY_Alt_L, GDK_KEY_Delete };</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2d6704aa58ecc18ecc178ea418addd87">protocol_plugin_send_keys_signals</a>(rfi-&gt;<a class="code" href="structrf__context.html#acee2095e72fb2428c498f62e21800026">drawing_area</a>,</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; keys, G_N_ELEMENTS(keys), GDK_KEY_PRESS | GDK_KEY_RELEASE);</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;}</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;</div><div class="line"><a name="l01242"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a527c08af66797732d90664f342b5fa00"> 1242</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a527c08af66797732d90664f342b5fa00">remmina_rdp_set_connection_type</a>(rdpSettings *settings, guint32 type)</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;{</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; freerdp_settings_set_uint32(settings, FreeRDP_ConnectionType, type);</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="keywordflow">if</span> (type == CONNECTION_TYPE_MODEM) {</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, TRUE);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, FALSE);</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, FALSE);</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, TRUE);</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, TRUE);</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, TRUE);</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_BROADBAND_LOW) {</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, TRUE);</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, FALSE);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, FALSE);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, TRUE);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, TRUE);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_SATELLITE) {</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, TRUE);</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, FALSE);</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, TRUE);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, TRUE);</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_BROADBAND_HIGH) {</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, TRUE);</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, FALSE);</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, TRUE);</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, TRUE);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_WAN) {</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, FALSE);</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, TRUE);</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, FALSE);</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, FALSE);</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_LAN) {</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, FALSE);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, TRUE);</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, FALSE);</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, FALSE);</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == CONNECTION_TYPE_AUTODETECT) {</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableWallpaper, FALSE);</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, TRUE);</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, TRUE);</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, FALSE);</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, FALSE);</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_DisableThemes, FALSE);</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_NetworkAutoDetect, TRUE);</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="comment">/* Automatically activate GFX and RFX codec support */</span></div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;<span class="preprocessor">#ifdef WITH_GFX_H264</span></div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_GfxAVC444, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_GfxH264, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_RemoteFxCodec, TRUE);</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; freerdp_settings_set_bool(settings, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == REMMINA_CONNECTION_TYPE_NONE) {</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; }</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;}</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 3, 0)</span></div><div class="line"><a name="l01315"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ae0449ecd9477c0361ae0d3ca928d8017"> 1315</a></span>&#160;<span class="keyword">static</span> gchar *<a class="code" href="rdp__plugin_8c.html#ae0449ecd9477c0361ae0d3ca928d8017">remmina_get_rdp_kbd_remap</a>(<span class="keyword">const</span> gchar *keymap)</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;{</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; guint *table;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; gchar keys[20];</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; gchar *rdp_kbd_remap = NULL;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; gint i;</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; Display *display;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; table = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#add5c06ac9c7a5fb3b3459731ffc8e964">pref_keymap_get_table</a>(keymap);</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; <span class="keywordflow">if</span> (!table)</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keywordflow">return</span> rdp_kbd_remap;</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; rdp_kbd_remap = g_malloc0(512);</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; display = XOpenDisplay(0);</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <span class="keywordflow">for</span> (i = 0; table[i] &gt; 0; i += 2) {</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; g_snprintf(keys, <span class="keyword">sizeof</span>(keys), <span class="stringliteral">&quot;0x%02x=0x%02x&quot;</span>, freerdp_keyboard_get_rdp_scancode_from_x11_keycode(XKeysymToKeycode(display, table[i])),</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; freerdp_keyboard_get_rdp_scancode_from_x11_keycode(XKeysymToKeycode(display, table[i + 1])));</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; <span class="keywordflow">if</span> (i &gt; 0)</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; g_strlcat(rdp_kbd_remap, <span class="stringliteral">&quot;,&quot;</span>, 512);</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; g_strlcat(rdp_kbd_remap, keys, 512);</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; }</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; XCloseDisplay(display);</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keywordflow">return</span> rdp_kbd_remap;</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;}</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;</div><div class="line"><a name="l01343"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0"> 1343</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0">remmina_rdp_main</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;{</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; <span class="keyword">const</span> gchar *s;</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; gchar *sm;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; gchar *value;</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keyword">const</span> gchar *cs;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; rdpChannels *channels;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; gchar *gateway_host;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; gint gateway_port;</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; gchar *datapath = NULL;</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; gboolean status = TRUE;</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; gchar *rdp_kbd_remap;</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; gint i;</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; gint desktopOrientation, desktopScaleFactor, deviceScaleFactor;</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; channels = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context-&gt;channels;</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; datapath = g_build_path(<span class="stringliteral">&quot;/&quot;</span>,</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2919b48fd95b772b590b430a03ecb98f">file_get_user_datadir</a>(),</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; <span class="stringliteral">&quot;RDP&quot;</span>,</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; NULL);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;RDP data path is %s&quot;</span>, datapath);</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <span class="keywordflow">if</span> ((datapath != NULL) &amp;&amp; (datapath[0] != <span class="charliteral">&#39;\0&#39;</span>))</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <span class="keywordflow">if</span> (access(datapath, W_OK) == 0)</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ConfigPath, datapath);</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; g_free(datapath);</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;assistance_mode&quot;</span>, 0)){</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; rdpAssistanceFile* file = freerdp_assistance_file_new();</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <span class="keywordflow">if</span> (!file){</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Failed to allocate Assistance File structure&quot;</span>);</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; }</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; </div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;assistance_file&quot;</span>) == NULL || </div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;assistance_pass&quot;</span>) == NULL ){</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Assistance File and Password are not set while Assistance Mode is enabled&quot;</span>);</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; }</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; status = freerdp_assistance_parse_file(file, </div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;assistance_file&quot;</span>), </div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;assistance_pass&quot;</span>));</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; <span class="keywordflow">if</span> (status &lt; 0){</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Failed to Parse Assistance File&quot;</span>);</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; }</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; </div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keywordflow">if</span> (!freerdp_assistance_populate_settings_from_assistance_file(file, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>))</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Failed to populate settings from Assistance File&quot;</span>);</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; }</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;<span class="preprocessor">#if defined(PROXY_TYPE_IGNORE)</span></div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="keywordflow">if</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;useproxyenv&quot;</span>, FALSE) ? TRUE : FALSE) {</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Not using system proxy settings&quot;</span>);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType, PROXY_TYPE_IGNORE);</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; }</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af">remmina_rdp_tunnel_init</a>(gp))</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AutoReconnectionEnabled, (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disableautoreconnect&quot;</span>, FALSE) ? FALSE : TRUE));</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <span class="comment">/* Disable RDP auto reconnection when SSH tunnel is enabled */</span></div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, FALSE))</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AutoReconnectionEnabled, FALSE);</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;colordepth&quot;</span>, 99));</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SoftwareGdi, TRUE);</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;gfx_h264_available: %d&quot;</span>, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <span class="comment">/* Avoid using H.264 modes if they are not available on libfreerdp */</span></div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> &amp;&amp; (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 65 || freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth == 66)))</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 64); <span class="comment">// Fallback to GFX RFX</span></div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 0) {</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; <span class="comment">/* RFX (Win7)*/</span></div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec, TRUE);</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, FALSE);</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 63) {</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <span class="comment">/* /gfx (RFX Progressive) (Win8) */</span></div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, FALSE);</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, FALSE);</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 64) {</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <span class="comment">/* /gfx:rfx (Win8) */</span></div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec, TRUE);</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, FALSE);</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, FALSE);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 65) {</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; <span class="comment">/* /gfx:avc420 (Win8.1) */</span></div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, FALSE);</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 66) {</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; <span class="comment">/* /gfx:avc444 (Win10) */</span></div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth) == 99) {</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; <span class="comment">/* Automatic (Let the server choose its best format) */</span></div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec, TRUE);</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline, TRUE);</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxAVC444, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; }</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteFxCodec) ||</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NSCodec) ||</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline)) {</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathOutput, TRUE);</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FrameMarkerCommandEnabled, TRUE);</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ColorDepth, 32);</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a40e89e126e5dd96a3f67e6f945a8867b">bpp</a> = 32;</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; }</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; gint w = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#afe3c32a421cd5dcc735b99318ff8844a">get_profile_remote_width</a>(gp);</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; gint h = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2b75137f9d7739c0d7881ee16e2aabfa">get_profile_remote_height</a>(gp);</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; <span class="comment">/* multiple of 4 */</span></div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; w = (w + 3) &amp; ~0x3;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; h = (h + 3) &amp; ~0x3;</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth, w);</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight, h);</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Resolution set by the user: %dx%d&quot;</span>, w, h);</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; <span class="comment">/* Workaround for FreeRDP issue #5417: in GFX AVC modes we can&#39;t go under</span></div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;<span class="comment"> * AVC_MIN_DESKTOP_WIDTH x AVC_MIN_DESKTOP_HEIGHT */</span></div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline) &amp;&amp;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GfxH264)) {</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth) &lt;</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; AVC_MIN_DESKTOP_WIDTH)</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth,</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; AVC_MIN_DESKTOP_WIDTH);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>,</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; FreeRDP_DesktopHeight) &lt;</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; AVC_MIN_DESKTOP_HEIGHT)</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight,</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; AVC_MIN_DESKTOP_HEIGHT);</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; }</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; <span class="comment">/* Workaround for FreeRDP issue #5119. This will make our horizontal resolution</span></div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;<span class="comment"> * an even value, but it will add a vertical black 1 pixel line on the</span></div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;<span class="comment"> * right of the desktop */</span></div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="keywordflow">if</span> ((freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth) &amp; 1) != 0) {</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; UINT32 tmp = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth);</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth, tmp - 1);</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; }</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#abaf7f57e2336f6e5c257e9c30fedc047">protocol_plugin_set_width</a>(gp, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth));</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">protocol_plugin_set_height</a>(gp, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight));</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; w = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth);</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; h = freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight);</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Resolution set after workarounds: %dx%d&quot;</span>, w, h);</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>))</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Username, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>));</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>))</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Domain, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;domain&quot;</span>));</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; s = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>);</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="keywordflow">if</span> (s) freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Password, s);</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AutoLogonEnabled, TRUE);</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; gchar *proxy_type = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;proxy_type&quot;</span>));</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; gchar *proxy_username = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;proxy_username&quot;</span>));</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; gchar *proxy_password = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;proxy_password&quot;</span>));</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; gchar *proxy_hostname = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;proxy_hostname&quot;</span>));</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; gint proxy_port = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;proxy_port&quot;</span>, 80);</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_type: %s&quot;</span>, proxy_type);</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_username: %s&quot;</span>, proxy_username);</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_password: %s&quot;</span>, proxy_password);</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_hostname: %s&quot;</span>, proxy_hostname);</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;proxy_port: %d&quot;</span>, proxy_port);</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; <span class="keywordflow">if</span> (proxy_type &amp;&amp; proxy_hostname) {</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(proxy_type, <span class="stringliteral">&quot;no_proxy&quot;</span>) == 0)</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType, PROXY_TYPE_IGNORE);</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(proxy_type, <span class="stringliteral">&quot;http&quot;</span>) == 0)</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType, PROXY_TYPE_HTTP);</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(proxy_type, <span class="stringliteral">&quot;socks5&quot;</span>) == 0)</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType, PROXY_TYPE_SOCKS);</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; g_warning(<span class="stringliteral">&quot;Invalid proxy protocol, at the moment only no_proxy, HTTP and SOCKS5 are supported&quot;</span>);</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;ProxyType set to: %&quot;</span> PRIu32, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyType));</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyHostname, proxy_hostname);</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="keywordflow">if</span> (proxy_username)</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyUsername, proxy_username);</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; <span class="keywordflow">if</span> (proxy_password)</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyPassword, proxy_password);</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; <span class="keywordflow">if</span> (proxy_port)</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; freerdp_settings_set_uint16(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ProxyPort, proxy_port);</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; }</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; g_free(proxy_hostname);</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; g_free(proxy_username);</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; g_free(proxy_password);</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;base-cred-for-gw&quot;</span>, FALSE)) {</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <span class="comment">// Reset gateway credentials</span></div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>, NULL);</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>, NULL);</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>, NULL);</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; }</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <span class="comment">/* Remote Desktop Gateway server address */</span></div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayEnabled, FALSE);</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; s = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_server&quot;</span>);</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="keywordflow">if</span> (s) {</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gwtransp&quot;</span>);</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 3, 1)</span></div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;websockets&quot;</span>, FALSE))</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpUseWebsockets, TRUE);</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpUseWebsockets, FALSE);</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;http&quot;</span>) == 0) {</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayRpcTransport, FALSE);</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpTransport, TRUE);</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;rpc&quot;</span>) == 0) {</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayRpcTransport, TRUE);</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpTransport, FALSE);</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;auto&quot;</span>) == 0) {</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayRpcTransport, TRUE);</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHttpTransport, TRUE);</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; }</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a6fdfd3063906f49157225f536537bb0f">get_server_port</a>(s, 443, &amp;gateway_host, &amp;gateway_port);</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHostname, gateway_host);</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPort, gateway_port);</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayEnabled, TRUE);</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, TRUE);</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; }</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; <span class="comment">/* Remote Desktop Gateway domain */</span></div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>)) {</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_domain&quot;</span>));</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, FALSE);</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; }</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; <span class="comment">/* Remote Desktop Gateway username */</span></div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>)) {</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_username&quot;</span>));</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, FALSE);</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; }</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; <span class="comment">/* Remote Desktop Gateway password */</span></div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; s = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gateway_password&quot;</span>);</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; <span class="keywordflow">if</span> (s) {</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPassword, s);</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, FALSE);</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; }</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="comment">/* If no different credentials were provided for the Remote Desktop Gateway</span></div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;<span class="comment"> * use the same authentication credentials for the host */</span></div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayEnabled) &amp;&amp; freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials)) {</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain, freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Domain));</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername, freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Username));</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPassword, freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Password));</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; }</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; <span class="comment">/* Remote Desktop Gateway usage */</span></div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayEnabled))</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; freerdp_set_gateway_usage_method(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>,</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;gateway_usage&quot;</span>, FALSE) ? TSC_PROXY_MODE_DETECT : TSC_PROXY_MODE_DIRECT);</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayAccessToken,</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;gatewayaccesstoken&quot;</span>));</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AuthenticationLevel, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; remminafile, <span class="stringliteral">&quot;authentication level&quot;</span>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AuthenticationLevel)));</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; <span class="comment">/* Certificate ignore */</span></div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_IgnoreCertificate, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;cert_ignore&quot;</span>, 0));</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_OldLicenseBehaviour, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;old-license&quot;</span>, 0));</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AllowUnanouncedOrdersFromServer, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;relax-order-checks&quot;</span>, 0));</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GlyphSupportLevel, (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;glyph-cache&quot;</span>, 0) ? GLYPH_SUPPORT_FULL : GLYPH_SUPPORT_NONE));</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <span class="keywordflow">if</span> ((cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;clientname&quot;</span>)))</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ClientHostname, cs);</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ClientHostname, g_get_host_name());</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <span class="comment">/* Client Build number is optional, if not specified defaults to 0, allow for comments to appear after number */</span></div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; <span class="keywordflow">if</span> ((cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;clientbuild&quot;</span>))) {</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; <span class="keywordflow">if</span> (*cs) {</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; UINT32 val = strtoul(cs, NULL, 0);</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ClientBuild, val);</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; }</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; }</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;loadbalanceinfo&quot;</span>)) {</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; <span class="keywordtype">char</span> *tmp = strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;loadbalanceinfo&quot;</span>));</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;LoadBalanceInfo = (BYTE *)tmp;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_LoadBalanceInfoLength, strlen(tmp));</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; }</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;exec&quot;</span>))</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AlternateShell, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;exec&quot;</span>));</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;execpath&quot;</span>))</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ShellWorkingDirectory, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;execpath&quot;</span>));</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; sm = g_strdup_printf(<span class="stringliteral">&quot;rdp_quality_%i&quot;</span>, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;quality&quot;</span>, DEFAULT_QUALITY_0));</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; value = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">pref_get_value</a>(sm);</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; g_free(sm);</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; <span class="keywordflow">if</span> (value &amp;&amp; value[0]) {</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, strtoul(value, NULL, 16));</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; <span class="keywordflow">switch</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;quality&quot;</span>, DEFAULT_QUALITY_0)) {</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; <span class="keywordflow">case</span> 9:</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, DEFAULT_QUALITY_9);</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, DEFAULT_QUALITY_2);</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, DEFAULT_QUALITY_1);</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PerformanceFlags, DEFAULT_QUALITY_0);</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; }</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; }</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; g_free(value);</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; <span class="keywordflow">if</span> ((cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;network&quot;</span>))) {</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; guint32 type = 0;</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;modem&quot;</span>) == 0)</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; type = CONNECTION_TYPE_MODEM;</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;broadband&quot;</span>) == 0)</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; type = CONNECTION_TYPE_BROADBAND_HIGH;</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;broadband-low&quot;</span>) == 0)</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; type = CONNECTION_TYPE_BROADBAND_LOW;</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;broadband-high&quot;</span>) == 0)</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; type = CONNECTION_TYPE_BROADBAND_HIGH;</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;wan&quot;</span>) == 0)</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; type = CONNECTION_TYPE_WAN;</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;lan&quot;</span>) == 0)</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; type = CONNECTION_TYPE_LAN;</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((g_strcmp0(cs, <span class="stringliteral">&quot;autodetect&quot;</span>) == 0))</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; type = CONNECTION_TYPE_AUTODETECT;</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((g_strcmp0(cs, <span class="stringliteral">&quot;none&quot;</span>) == 0))</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; type = REMMINA_CONNECTION_TYPE_NONE;</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; type = REMMINA_CONNECTION_TYPE_NONE;</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rdp__plugin_8c.html#a527c08af66797732d90664f342b5fa00">remmina_rdp_set_connection_type</a>(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, type))</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Network settings not set&quot;</span>);</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; }</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; <span class="comment">/* PerformanceFlags bitmask need also to be splitted into BOOL variables</span></div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;<span class="comment"> * like freerdp_settings_set_bool(rfi-&gt;settings, FreeRDP_DisableWallpaper, freerdp_settings_set_bool(rfi-&gt;settings, FreeRDP_AllowFontSmoothing…</span></div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;<span class="comment"> * or freerdp_get_param_bool() function will return the wrong value</span></div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; freerdp_performance_flags_split(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>);</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 3, 0)</span></div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; rdp_kbd_remap = <a class="code" href="rdp__plugin_8c.html#ae0449ecd9477c0361ae0d3ca928d8017">remmina_get_rdp_kbd_remap</a>(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;keymap&quot;</span>));</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; <span class="keywordflow">if</span> (rdp_kbd_remap != NULL) {</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_KeyboardRemappingList, rdp_kbd_remap);</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;rdp_keyboard_remapping_list: %s&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;KeyboardRemappingList);</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; g_free(rdp_kbd_remap);</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; }</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_KeyboardRemappingList, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">pref_get_value</a>(<span class="stringliteral">&quot;rdp_kbd_remap&quot;</span>));</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;rdp_keyboard_remapping_list: %s&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;KeyboardRemappingList);</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; }</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_KeyboardLayout, <a class="code" href="rdp__settings_8c.html#a4052ab6359b14e8f9a4cf76bed4da90c">remmina_rdp_settings_get_keyboard_layout</a>());</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;console&quot;</span>, FALSE))</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ConsoleSession, TRUE);</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;restricted-admin&quot;</span>, FALSE)) {</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ConsoleSession, TRUE);</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RestrictedAdminModeRequired, TRUE);</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; }</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;pth&quot;</span>)) {</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ConsoleSession, TRUE);</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RestrictedAdminModeRequired, TRUE);</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PasswordHash, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;pth&quot;</span>));</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4da50fa364ddf1fcf22def341f61a7cb">file_set_int</a>(remminafile, <span class="stringliteral">&quot;restricted-admin&quot;</span>, TRUE);</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; }</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;security&quot;</span>);</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;rdp&quot;</span>) == 0) {</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RdpSecurity, TRUE);</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecurity, FALSE);</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NlaSecurity, FALSE);</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ExtSecurity, FALSE);</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseRdpSecurityLayer, TRUE);</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;tls&quot;</span>) == 0) {</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RdpSecurity, FALSE);</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecurity, TRUE);</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NlaSecurity, FALSE);</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ExtSecurity, FALSE);</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;nla&quot;</span>) == 0) {</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RdpSecurity, FALSE);</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecurity, FALSE);</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NlaSecurity, TRUE);</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ExtSecurity, FALSE);</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;ext&quot;</span>) == 0) {</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RdpSecurity, FALSE);</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecurity, FALSE);</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NlaSecurity, FALSE);</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ExtSecurity, TRUE);</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; <span class="comment">/* This is &quot;-nego&quot; switch of xfreerdp */</span></div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NegotiateSecurityLayer, TRUE);</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160; }</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;tls-seclevel&quot;</span>);</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; <span class="keywordflow">if</span> (cs &amp;&amp; g_strcmp0(cs,<span class="stringliteral">&quot;&quot;</span>)!=0) {</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160; i = atoi(cs);</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TlsSecLevel, i);</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; }</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_CompressionEnabled, TRUE);</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disable_fastpath&quot;</span>, FALSE)) {</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathInput, FALSE);</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathOutput, FALSE);</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathInput, TRUE);</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_FastPathOutput, TRUE);</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; }</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160; <span class="comment">/* Orientation and scaling settings */</span></div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; <a class="code" href="rdp__settings_8c.html#a5f05047cf10611ffb7a23a248650cb4c">remmina_rdp_settings_get_orientation_scale_prefs</a>(&amp;desktopOrientation, &amp;desktopScaleFactor, &amp;deviceScaleFactor);</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; freerdp_settings_set_uint16(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopOrientation, desktopOrientation);</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; <span class="keywordflow">if</span> (desktopScaleFactor != 0 &amp;&amp; deviceScaleFactor != 0) {</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopScaleFactor, desktopScaleFactor);</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceScaleFactor, deviceScaleFactor);</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; }</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; <span class="comment">/* Try to enable &quot;Display Control Virtual Channel Extension&quot;, needed to</span></div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;<span class="comment"> * dynamically resize remote desktop. This will automatically open</span></div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;<span class="comment"> * the &quot;disp&quot; dynamic channel, if available */</span></div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportDisplayControl, TRUE);</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportDisplayControl)) {</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; CLPARAM *d[1];</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; <span class="keywordtype">int</span> dcount;</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; dcount = 1;</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; d[0] = <span class="stringliteral">&quot;disp&quot;</span>;</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, dcount, d);</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; }</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160; <span class="keywordflow">if</span> (freerdp_settings_get_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportGraphicsPipeline)) {</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; CLPARAM *d[1];</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="keywordtype">int</span> dcount;</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; dcount = 1;</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; d[0] = <span class="stringliteral">&quot;rdpgfx&quot;</span>;</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, dcount, d);</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160; }</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; <span class="comment">/* Sound settings */</span></div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;sound&quot;</span>);</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;remote&quot;</span>) == 0) {</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteConsoleAudio, TRUE);</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g_str_has_prefix(cs, <span class="stringliteral">&quot;local&quot;</span>)) {</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AudioPlayback, TRUE);</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AudioCapture, TRUE);</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160; <span class="comment">/* Disable sound */</span></div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AudioPlayback, FALSE);</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RemoteConsoleAudio, FALSE);</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160; }</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;microphone&quot;</span>);</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(cs, <span class="stringliteral">&quot;0&quot;</span>) == 0) {</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;“microphone” was set to 0, setting to \&quot;\&quot;&quot;</span>);</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;microphone&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_AudioCapture, TRUE);</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;“microphone” set to “%s”&quot;</span>, cs);</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="stringliteral">&quot;audin&quot;</span>, g_strdup(cs), &amp;count);</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160; g_free(p);</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; }</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160; }</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;audio-output&quot;</span>);</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;audio output set to %s&quot;</span>, cs);</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="stringliteral">&quot;rdpsnd&quot;</span>, g_strdup(cs), &amp;count);</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; status = freerdp_client_add_static_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; <span class="keywordflow">if</span> (status)</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; status = freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; g_free(p);</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; }</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;freerdp_log_level&quot;</span>);</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Log level set to to %s&quot;</span>, cs);</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160; cs = g_strdup(<span class="stringliteral">&quot;INFO&quot;</span>);</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; wLog *root = WLog_GetRoot();</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; WLog_SetStringLogLevel(root, cs);</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;freerdp_log_filters&quot;</span>);</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Log filters set to to %s&quot;</span>, cs);</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; WLog_AddStringLogFilters(cs);</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; WLog_AddStringLogFilters(NULL);</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; }</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;usb&quot;</span>);</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="stringliteral">&quot;urbdrc&quot;</span>, g_strdup(cs), &amp;count);</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160; g_free(p);</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160; }</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;vc&quot;</span>);</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f">remmina_rdp_CommandLineParseCommaSeparatedValues</a>(g_strdup(cs), &amp;count);</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; freerdp_client_add_static_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; g_free(p);</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; }</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;dvc&quot;</span>);</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f">remmina_rdp_CommandLineParseCommaSeparatedValues</a>(g_strdup(cs), &amp;count);</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; freerdp_client_add_dynamic_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; g_free(p);</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; }</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;rdp2tcp&quot;</span>);</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; g_free(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;RDP2TCPArgs);</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;RDP2TCPArgs = g_strdup(cs);</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;rdp2tcp set to %s&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;RDP2TCPArgs);</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <a class="code" href="rdp__plugin_8c.html#a5d1951ac829e885ee7f4955195b5204a">remmina_rdp_load_static_channel_addin</a>(channels, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, <span class="stringliteral">&quot;rdp2tcp&quot;</span>, rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>-&gt;RDP2TCPArgs);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; }</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; <span class="keywordtype">int</span> vermaj, vermin, verrev;</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; freerdp_get_version(&amp;vermaj, &amp;vermin, &amp;verrev);</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 1, 0)</span></div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;timeout&quot;</span>);</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; <span class="keyword">const</span> gchar *endptr = NULL;</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; guint64 val = g_ascii_strtoull(cs, (gchar **)&amp;endptr, 10);</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; <span class="keywordflow">if</span> (val &gt; 600000 || val &lt;= 0)</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; val = 600000;</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_TcpAckTimeout, (UINT32)val);</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; }</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;preferipv6&quot;</span>, FALSE) ? TRUE : FALSE)</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PreferIPv6OverIPv4, TRUE);</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectClipboard, remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;disableclipboard&quot;</span>, FALSE) ? FALSE : TRUE);</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;sharefolder&quot;</span>);</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; gchar *ccs = g_strdup(cs);</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[Deprecated-&gt;migrating] - Old sharefolder %s to \&quot;drive \&quot;&quot;</span>, ccs);</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; <span class="keywordflow">if</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;drive&quot;</span>)) {</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;drive&quot;</span>, g_strdup(ccs));</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">file_set_string</a>(remminafile, <span class="stringliteral">&quot;sharefolder&quot;</span>, NULL);</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[Deprecated-&gt;migrated] - drive set to %s&quot;</span>, g_strdup(ccs));</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; }</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; g_free(ccs);</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; <span class="comment">//CLPARAM **p;</span></div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; <span class="comment">//size_t count;</span></div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; <span class="comment">//p = remmina_rdp_CommandLineParseCommaSeparatedValuesEx(&quot;drive&quot;, g_strdup(cs), &amp;count);</span></div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; <span class="comment">//status = freerdp_client_add_device_channel(rfi-&gt;settings, count, p);</span></div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <span class="comment">//g_free(p);</span></div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; }</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; cs = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;drive&quot;</span>);</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; <span class="keywordflow">if</span> (cs != NULL &amp;&amp; cs[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Redirect directory set to %s&quot;</span>, cs);</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; CLPARAM **p;</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; <span class="keywordtype">size_t</span> count;</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; gchar **folders = g_strsplit(cs, <span class="stringliteral">&quot;;&quot;</span>, -1);</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; <span class="keywordflow">for</span> (i = 0; folders[i] != NULL; i++) {</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Parsing folder %s&quot;</span>, folders[i]);</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; p = <a class="code" href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a>(<span class="stringliteral">&quot;drive&quot;</span>, g_strdup(folders[i]), &amp;count);</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; status = freerdp_client_add_device_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, count, p);</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; g_free(p);</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; }</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; g_strfreev(folders);</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; }</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;shareprinter&quot;</span>, FALSE)) {</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;<span class="preprocessor">#ifdef HAVE_CUPS</span></div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Sharing printers&quot;</span>);</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; <span class="keyword">const</span> gchar *po = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;printer_overrides&quot;</span>);</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; <span class="keywordflow">if</span> (po &amp;&amp; po[0] != 0) {</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; <span class="comment">/* Fallback to remmina code to override print drivers */</span></div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; <span class="keywordflow">if</span> (cupsEnumDests(CUPS_DEST_FLAGS_NONE, 1000, NULL, 0, 0, <a class="code" href="rdp__plugin_8c.html#a9f5c241426816e49f95982b9e3d6bddf">remmina_rdp_set_printers</a>, rfi))</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;All printers have been shared&quot;</span>);</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Cannot share printers, are there any available?&quot;</span>);</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; <span class="comment">/* Use libfreerdp code to map all printers */</span></div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; CLPARAM *d[1];</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <span class="keywordtype">int</span> dcount;</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; dcount = 1;</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; d[0] = <span class="stringliteral">&quot;printer&quot;</span>;</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; freerdp_client_add_device_channel(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, dcount, d);</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; }</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_CUPS */</span><span class="preprocessor"></span></div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; }</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;span&quot;</span>, FALSE)) {</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SpanMonitors, TRUE);</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseMultimon, TRUE);</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Fullscreen, TRUE);</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a4da50fa364ddf1fcf22def341f61a7cb">file_set_int</a>(remminafile, <span class="stringliteral">&quot;multimon&quot;</span>, 1);</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; }</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;multimon&quot;</span>, FALSE)) {</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; guint32 maxwidth = 0;</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; guint32 maxheight = 0;</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; gchar *monitorids;</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; guint32 i;</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseMultimon, TRUE);</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; <span class="comment">/* TODO Add an option for this */</span></div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ForceMultimon, TRUE);</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Fullscreen, TRUE);</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; gchar *monitorids_string = g_strdup(remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;monitorids&quot;</span>));</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; <span class="comment">/* Otherwise we get all the attached monitors</span></div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;<span class="comment"> * monitorids may contains desktop orientation values.</span></div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;<span class="comment"> * But before we check if there are orientation attributes</span></div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; <span class="keywordflow">if</span> (monitorids_string != NULL &amp;&amp; monitorids_string[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; <span class="keywordflow">if</span> (g_strstr_len(monitorids_string, -1, <span class="stringliteral">&quot;,&quot;</span>) != NULL) {</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; <span class="keywordflow">if</span> (g_strstr_len(monitorids_string, -1, <span class="stringliteral">&quot;:&quot;</span>) != NULL) {</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; rdpMonitor *base = (rdpMonitor *)freerdp_settings_get_pointer(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorDefArray);</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; <span class="comment">/* We have an ID and an orientation degree */</span></div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; gchar **temp_items;</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; gchar **rot_items;</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; temp_items = g_strsplit(monitorids_string, <span class="stringliteral">&quot;,&quot;</span>, -1);</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; g_strv_length(temp_items); i++) {</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; rot_items = g_strsplit(temp_items[i], <span class="stringliteral">&quot;:&quot;</span>, -1);</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; rdpMonitor *current = &amp;base[atoi(rot_items[0])];</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; <span class="keywordflow">if</span> (i == 0)</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; monitorids = g_strdup(rot_items[0]);</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; monitorids = g_strdup_printf(<span class="stringliteral">&quot;%s,%s&quot;</span>, monitorids, rot_items[0]);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; current-&gt;attributes.orientation = atoi(rot_items[1]);</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Monitor n %d orientation: %d&quot;</span>, i, current-&gt;attributes.orientation);</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; }</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; monitorids = g_strdup(monitorids_string);</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; }</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; monitorids = g_strdup(monitorids_string);</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; }</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; monitorids = g_strdup(monitorids_string);</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; }</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; <a class="code" href="rdp__monitor_8c.html#aa5969439ce0342765baea33fcf396940">remmina_rdp_monitor_get</a>(rfi, &amp;monitorids, &amp;maxwidth, &amp;maxheight);</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <span class="keywordflow">if</span> (monitorids != NULL &amp;&amp; monitorids[0] != <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; UINT32 *base = (UINT32 *)freerdp_settings_get_pointer(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MonitorIds);</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; gchar **items;</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; items = g_strsplit(monitorids, <span class="stringliteral">&quot;,&quot;</span>, -1);</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NumMonitorIds, g_strv_length(items));</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;NumMonitorIds: %d&quot;</span>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_NumMonitorIds));</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; g_strv_length(items); i++) {</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; UINT32 *current = &amp;base[i];</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; *current = atoi(items[i]);</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Added monitor with ID %&quot;</span> PRIu32, *current);</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; }</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; g_free(monitorids);</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; g_strfreev(items);</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; }</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <span class="keywordflow">if</span> (maxwidth &amp;&amp; maxheight) {</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Setting DesktopWidth and DesktopHeight to: %dx%d&quot;</span>, maxwidth, maxheight);</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth, maxwidth);</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight, maxheight);</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;DesktopWidth and DesktopHeight set to: %dx%d&quot;</span>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth), freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight));</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Cannot set Desktop Size, we are using the previously set values: %dx%d&quot;</span>, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth), freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight));</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; }</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#abaf7f57e2336f6e5c257e9c30fedc047">protocol_plugin_set_width</a>(gp, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopWidth));</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">protocol_plugin_set_height</a>(gp, freerdp_settings_get_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DesktopHeight));</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; }</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="keyword">const</span> gchar *sn = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;smartcardname&quot;</span>);</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;sharesmartcard&quot;</span>, FALSE) ||</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; (sn != NULL &amp;&amp; sn[0] != <span class="charliteral">&#39;\0&#39;</span>)) {</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; RDPDR_SMARTCARD *smartcard;</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; smartcard = (RDPDR_SMARTCARD *)calloc(1, <span class="keyword">sizeof</span>(RDPDR_SMARTCARD));</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; RDPDR_DEVICE *sdev;</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; sdev = &amp;(smartcard-&gt;device);</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; RDPDR_SMARTCARD *sdev;</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; sdev = smartcard;</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160; sdev-&gt;Type = RDPDR_DTYP_SMARTCARD;</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; <span class="keywordflow">if</span> (sn != NULL &amp;&amp; sn[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; sdev-&gt;Name = _strdup(sn);</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectSmartCards, TRUE);</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160; freerdp_device_collection_add(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, (RDPDR_DEVICE *)smartcard);</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; }</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;passwordispin&quot;</span>, FALSE))</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; <span class="comment">/* Option works only combined with Username and Domain, because FreeRDP</span></div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;<span class="comment"> * doesn’t know anything about info on smart card */</span></div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_PasswordIsSmartcardPin, TRUE);</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160; <span class="comment">/* /serial[:&lt;name&gt;[,&lt;path&gt;[,&lt;driver&gt;[,permissive]]]] */</span></div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;shareserial&quot;</span>, FALSE)) {</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; RDPDR_SERIAL *serial;</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; serial = (RDPDR_SERIAL *)calloc(1, <span class="keyword">sizeof</span>(RDPDR_SERIAL));</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; RDPDR_DEVICE *sdev;</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; sdev = &amp;(serial-&gt;device);</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; RDPDR_SERIAL *sdev;</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; sdev = serial;</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160; sdev-&gt;Type = RDPDR_DTYP_SERIAL;</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160; <span class="keyword">const</span> gchar *sn = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;serialname&quot;</span>);</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; <span class="keywordflow">if</span> (sn != NULL &amp;&amp; sn[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160; sdev-&gt;Name = _strdup(sn);</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160; <span class="keyword">const</span> gchar *sd = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;serialdriver&quot;</span>);</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; <span class="keywordflow">if</span> (sd != NULL &amp;&amp; sd[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; serial-&gt;Driver = _strdup(sd);</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; <span class="keyword">const</span> gchar *sp = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;serialpath&quot;</span>);</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; <span class="keywordflow">if</span> (sp != NULL &amp;&amp; sp[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; serial-&gt;Path = _strdup(sp);</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;serialpermissive&quot;</span>, FALSE))</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; serial-&gt;Permissive = _strdup(<span class="stringliteral">&quot;permissive&quot;</span>);</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectSerialPorts, TRUE);</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160; freerdp_device_collection_add(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, (RDPDR_DEVICE *)serial);</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160; }</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;shareparallel&quot;</span>, FALSE)) {</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; RDPDR_PARALLEL *parallel;</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160; parallel = (RDPDR_PARALLEL *)calloc(1, <span class="keyword">sizeof</span>(RDPDR_PARALLEL));</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;<span class="preprocessor">#ifdef WITH_FREERDP3</span></div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160; RDPDR_DEVICE *pdev;</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; pdev = &amp;(parallel-&gt;device);</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; RDPDR_PARALLEL *pdev;</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; pdev = parallel;</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; pdev-&gt;Type = RDPDR_DTYP_PARALLEL;</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_RedirectParallelPorts, TRUE);</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; <span class="keyword">const</span> gchar *pn = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;parallelname&quot;</span>);</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; <span class="keywordflow">if</span> (pn != NULL &amp;&amp; pn[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160; pdev-&gt;Name = _strdup(pn);</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; <span class="keyword">const</span> gchar *dp = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;parallelpath&quot;</span>);</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; <span class="keywordflow">if</span> (dp != NULL &amp;&amp; dp[0] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; parallel-&gt;Path = _strdup(dp);</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; freerdp_device_collection_add(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, (RDPDR_DEVICE *)parallel);</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; }</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;multitransport&quot;</span>, FALSE)) {</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_DeviceRedirection, TRUE);</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_SupportMultitransport, TRUE);</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MultitransportFlags,</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; (TRANSPORT_TYPE_UDP_FECR | TRANSPORT_TYPE_UDP_FECL | TRANSPORT_TYPE_UDP_PREFERRED));</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; freerdp_settings_set_uint32(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_MultitransportFlags, 0);</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160; }</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160; <span class="comment">/* If needed, force interactive authentication by deleting all authentication fields,</span></div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;<span class="comment"> * forcing libfreerdp to call our callbacks for authentication.</span></div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;<span class="comment"> * This usually happens from a second attempt of connection, never on the 1st one. */</span></div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a>) {</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Username, NULL);</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Password, NULL);</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Domain, NULL);</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain, NULL);</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername, NULL);</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; freerdp_settings_set_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayPassword, NULL);</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUseSameCredentials, FALSE);</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; }</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160; gboolean orphaned;</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160; <span class="keywordflow">if</span> (!freerdp_connect(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>)) {</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160; orphaned = (GET_PLUGIN_DATA(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>) == NULL);</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; <span class="keywordflow">if</span> (!orphaned) {</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160; UINT32 e;</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160; e = freerdp_get_last_error(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context);</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160; <span class="keywordflow">switch</span> (e) {</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_AUTHENTICATION_FAILED:</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160; <span class="keywordflow">case</span> STATUS_LOGON_FAILURE: <span class="comment">// wrong return code from FreeRDP introduced at the end of July 2016? (fixed with b86c0ba)</span></div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_LOGON_FAILURE</span></div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_LOGON_FAILURE:</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160; <span class="comment">/* Logon failure, will retry with interactive authentication */</span></div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a> = TRUE;</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160; <span class="keywordflow">case</span> STATUS_ACCOUNT_LOCKED_OUT:</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_ACCOUNT_LOCKED_OUT</span></div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_ACCOUNT_LOCKED_OUT:</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nAccount locked out.&quot;</span>),</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160; <span class="keywordflow">case</span> STATUS_ACCOUNT_EXPIRED:</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_ACCOUNT_EXPIRED</span></div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_ACCOUNT_EXPIRED:</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nAccount expired.&quot;</span>),</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160; <span class="keywordflow">case</span> STATUS_PASSWORD_EXPIRED:</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_PASSWORD_EXPIRED</span></div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_PASSWORD_EXPIRED:</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nPassword expired.&quot;</span>),</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; <span class="keywordflow">case</span> STATUS_ACCOUNT_DISABLED:</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_ACCOUNT_DISABLED</span></div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_ACCOUNT_DISABLED:</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nAccount disabled.&quot;</span>),</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_SERVER_INSUFFICIENT_PRIVILEGES</span></div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160; <span class="comment">/* https://msdn.microsoft.com/en-us/library/ee392247.aspx */</span></div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_SERVER_INSUFFICIENT_PRIVILEGES:</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nInsufficient user privileges.&quot;</span>),</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160; <span class="keywordflow">case</span> STATUS_ACCOUNT_RESTRICTION:</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_ACCOUNT_RESTRICTION</span></div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_ACCOUNT_RESTRICTION:</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nAccount restricted.&quot;</span>),</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;</div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; <span class="keywordflow">case</span> STATUS_PASSWORD_MUST_CHANGE:</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_CONNECT_PASSWORD_MUST_CHANGE</span></div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_PASSWORD_MUST_CHANGE:</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not access the RDP server “%s”.\nChange user password before connecting.&quot;</span>),</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_FAILED:</div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Lost connection to the RDP server “%s”.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_DNS_NAME_NOT_FOUND:</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not find the address for the RDP server “%s”.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_TLS_CONNECT_FAILED:</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp,</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160; _(<span class="stringliteral">&quot;Could not connect to the RDP server “%s” via TLS. See the DEBUG traces from a terminal for more information.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_SECURITY_NEGO_CONNECT_FAILED:</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160; <span class="comment">// TRANSLATORS: the placeholder may be either an IP/FQDN or a server hostname</span></div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Unable to establish a connection to the RDP server “%s”. Check “Security protocol negotiation”.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_POST_CONNECT_FAILED</span></div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_POST_CONNECT_FAILED:</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; <span class="comment">/* remmina_rdp_post_connect() returned FALSE to libfreerdp. We saved the error on rfi-&gt;postconnect_error */</span></div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160; <span class="keywordflow">switch</span> (rfi-&gt;<a class="code" href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">postconnect_error</a>) {</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160; <span class="keywordflow">case</span> REMMINA_POSTCONNECT_ERROR_OK:</div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; <span class="comment">/* We should never come here */</span></div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Cannot connect to the RDP server “%s”.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; <span class="keywordflow">case</span> REMMINA_POSTCONNECT_ERROR_GDI_INIT:</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Could not start libfreerdp-gdi.&quot;</span>));</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160; <span class="keywordflow">case</span> REMMINA_POSTCONNECT_ERROR_NO_H264:</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;You requested a H.264 GFX mode for the server “%s”, but your libfreerdp does not support H.264. Please use a non-AVC colour depth setting.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160; }</div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;<span class="preprocessor">#ifdef FREERDP_ERROR_SERVER_DENIED_CONNECTION</span></div><div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_SERVER_DENIED_CONNECTION:</div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;The “%s” server refused the connection.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160; <span class="keywordflow">case</span> 0x800759DB:</div><div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160; <span class="comment">// E_PROXY_NAP_ACCESSDENIED https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tsgu/84cd92e4-592c-4219-95d8-18021ac654b0</span></div><div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;The Remote Desktop Gateway “%s” denied the user “%s\\%s” access due to policy.&quot;</span>),</div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayHostname), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayDomain), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_GatewayUsername));</div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;</div><div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160; <span class="keywordflow">case</span> FREERDP_ERROR_CONNECT_NO_OR_MISSING_CREDENTIALS:</div><div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#acacad775c2c168f900deaa6c90481319">user_cancelled</a> = TRUE;</div><div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;</div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; g_printf(<span class="stringliteral">&quot;libfreerdp returned code is %08X\n&quot;</span>, e);</div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, _(<span class="stringliteral">&quot;Cannot connect to the “%s” RDP server.&quot;</span>), freerdp_settings_get_string(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ServerHostname));</div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; }</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160; }</div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160; }</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160; <span class="keywordflow">if</span> (GET_PLUGIN_DATA(rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>) == NULL) orphaned = <span class="keyword">true</span>; <span class="keywordflow">else</span> orphaned = <span class="keyword">false</span>;</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160; <span class="keywordflow">if</span> (!orphaned &amp;&amp; freerdp_get_last_error(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>-&gt;context) == FREERDP_ERROR_SUCCESS &amp;&amp; !rfi-&gt;<a class="code" href="structrf__context.html#acacad775c2c168f900deaa6c90481319">user_cancelled</a>)</div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160; <a class="code" href="rdp__plugin_8c.html#adb2d2f801618ad1e5ff14b4ebf2a9eb9">remmina_rdp_main_loop</a>(gp);</div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;}</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;</div><div class="line"><a name="l02336"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af22c947a2ae21ce29170be003585e06b"> 2336</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#af22c947a2ae21ce29170be003585e06b">rfi_uninit</a>(<a class="code" href="structrf__context.html">rfContext</a> *rfi)</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;{</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160; freerdp *instance;</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160; instance = rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>;</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>) {</div><div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa574515edb4966117f539d26e26f0a62">thread_cancelled</a> = TRUE; <span class="comment">// Avoid all rf_queue function to run</span></div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160; pthread_cancel(rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>);</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>)</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160; pthread_join(rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>, NULL);</div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160; }</div><div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;</div><div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160; <span class="keywordflow">if</span> (instance) {</div><div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a>) {</div><div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160; freerdp_abort_connect(instance);</div><div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160; }</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160; }</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160; <span class="keywordflow">if</span> (instance) {</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160; RDP_CLIENT_ENTRY_POINTS *pEntryPoints = instance-&gt;pClientEntryPoints;</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160; <span class="keywordflow">if</span> (pEntryPoints)</div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160; IFCALL(pEntryPoints-&gt;GlobalUninit);</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160; free(instance-&gt;pClientEntryPoints);</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160; freerdp_context_free(instance); <span class="comment">/* context is rfContext* rfi */</span></div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160; freerdp_free(instance); <span class="comment">/* This implicitly frees instance-&gt;context and rfi is no longer valid */</span></div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160; }</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;}</div><div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;</div><div class="line"><a name="l02366"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a6aa88468d17f574532ca959f554a70c5"> 2366</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a6aa88468d17f574532ca959f554a70c5">complete_cleanup_on_main_thread</a>(gpointer data)</div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;{</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160; gboolean orphaned;</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)data;</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; <a class="code" href="rdp__cliprdr_8c.html#a4da95b96bf2c86b8f4cc63dcafdd1365">remmina_rdp_clipboard_free</a>(rfi);</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; gdi_free(rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a>);</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160; gp = rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a>;</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160; <span class="keywordflow">if</span> (GET_PLUGIN_DATA(gp) == NULL) orphaned = <span class="keyword">true</span>; <span class="keywordflow">else</span> orphaned = <span class="keyword">false</span>;</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160; <a class="code" href="rdp__cliprdr_8c.html#a7d911246d8a6efed5a64b7ecd7b059bf">remmina_rdp_cliprdr_detach_owner</a>(gp);</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160; <span class="keywordflow">if</span> (!orphaned) <a class="code" href="rdp__event_8c.html#a65eef99dc99f77be815a5da804ed94fc">remmina_rdp_event_uninit</a>(gp);</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160; <span class="keywordflow">if</span> (!orphaned) g_object_steal_data(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>);</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160; <a class="code" href="rdp__plugin_8c.html#af22c947a2ae21ce29170be003585e06b">rfi_uninit</a>(rfi);</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160; <span class="comment">/* Notify the RemminaProtocolWidget that we closed our connection, and the GUI interface</span></div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;<span class="comment"> * can be removed */</span></div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160; <span class="keywordflow">if</span> (!orphaned)</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(gp);</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160; <span class="keywordflow">return</span> G_SOURCE_REMOVE;</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;}</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;</div><div class="line"><a name="l02396"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54"> 2396</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54">remmina_rdp_main_thread</a>(gpointer data)</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;{</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160; <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160; pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160; CANCEL_ASYNC</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160; gp = (<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)data;</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a> = FALSE;</div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160; <span class="keywordflow">do</span></div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160; <a class="code" href="rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0">remmina_rdp_main</a>(gp);</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160; <span class="keywordflow">while</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#abfb79da3d96ca4aa219eae9c73b0b53f">protocol_plugin_has_error</a>(gp) &amp;&amp; rfi-&gt;<a class="code" href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">attempt_interactive_authentication</a> == TRUE &amp;&amp; !rfi-&gt;<a class="code" href="structrf__context.html#acacad775c2c168f900deaa6c90481319">user_cancelled</a>);</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a> = 0;</div><div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;</div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160; <span class="comment">/* cleanup */</span></div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160; g_idle_add(<a class="code" href="rdp__plugin_8c.html#a6aa88468d17f574532ca959f554a70c5">complete_cleanup_on_main_thread</a>, (gpointer)rfi);</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;</div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;}</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;</div><div class="line"><a name="l02423"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309"> 2423</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;{</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160; freerdp *instance;</div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi;</div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;</div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160; instance = freerdp_new();</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160; instance-&gt;PreConnect = <a class="code" href="rdp__plugin_8c.html#a0bc4113554537fd1a9e4c8bb9201e789">remmina_rdp_pre_connect</a>;</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160; instance-&gt;PostConnect = <a class="code" href="rdp__plugin_8c.html#ac8d1ec82167ad20b7634ed545d4badbc">remmina_rdp_post_connect</a>;</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160; instance-&gt;PostDisconnect = <a class="code" href="rdp__plugin_8c.html#ab9e7535ac53b25e8923a3b9fd1622046">remmina_rdp_post_disconnect</a>;</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160; instance-&gt;Authenticate = <a class="code" href="rdp__plugin_8c.html#af33e88ae9c13745eb6d36f36418e3676">remmina_rdp_authenticate</a>;</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160; instance-&gt;GatewayAuthenticate = <a class="code" href="rdp__plugin_8c.html#a71166233c6c9e4714cbdb0d74ce7c579">remmina_rdp_gw_authenticate</a>;</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160; <span class="comment">//instance-&gt;VerifyCertificate = remmina_rdp_verify_certificate;</span></div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160; instance-&gt;VerifyCertificateEx = <a class="code" href="rdp__plugin_8c.html#a23cb647672c113276cbf86689f2f9054">remmina_rdp_verify_certificate_ex</a>;</div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160; <span class="comment">//instance-&gt;VerifyChangedCertificate = remmina_rdp_verify_changed_certificate;</span></div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160; instance-&gt;VerifyChangedCertificateEx = <a class="code" href="rdp__plugin_8c.html#a6d333b2bc5bfea17c71159ca5064ba84">remmina_rdp_verify_changed_certificate_ex</a>;</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160; instance-&gt;ContextSize = <span class="keyword">sizeof</span>(<a class="code" href="rdp__plugin_8h.html#a0e50aeabb34e9e653933d081e74c5c16">rfContext</a>);</div><div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160; freerdp_context_new(instance);</div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160; rfi = (<a class="code" href="structrf__context.html">rfContext</a> *)instance-&gt;<a class="code" href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">context</a>;</div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160; g_object_set_data_full(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>, rfi, free);</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">protocol_widget</a> = gp;</div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">instance</a> = instance;</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a> = instance-&gt;settings;</div><div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#acacad775c2c168f900deaa6c90481319">user_cancelled</a> = FALSE;</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160; freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);</div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;</div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160; <a class="code" href="rdp__event_8c.html#af3a991a02d35fb09c85f2e752a5393ca">remmina_rdp_event_init</a>(gp);</div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160;}</div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;</div><div class="line"><a name="l02459"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5"> 2459</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160;{</div><div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160; <span class="keyword">const</span> gchar *profile_name, *p;</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160; gchar thname[16], c;</div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160; gint nthname = 0;</div><div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;</div><div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a96c4689f6bc062482536038cb3b24e78">scale</a> = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ae97f4052c4bbda628682ae071ada27ed">remmina_protocol_widget_get_current_scale_mode</a>(gp);</div><div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;</div><div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;</div><div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;</div><div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>, NULL, <a class="code" href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54">remmina_rdp_main_thread</a>, gp)) {</div><div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">protocol_plugin_set_error</a>(gp, <span class="stringliteral">&quot;%s&quot;</span>,</div><div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160; <span class="stringliteral">&quot;Could not start pthread.&quot;</span>);</div><div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160;</div><div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a> = 0;</div><div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160;</div><div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160; }</div><div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160;</div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160; <span class="comment">/* Generate a thread name to be used with pthread_setname_np() for debugging */</span></div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160; profile_name = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;name&quot;</span>);</div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160; p = profile_name;</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160; strcpy(thname, <span class="stringliteral">&quot;RemmRDP:&quot;</span>);</div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160; <span class="keywordflow">if</span> (p) {</div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160; nthname = strlen(thname);</div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160; <span class="keywordflow">while</span> ((c = *p) != 0 &amp;&amp; nthname &lt; <span class="keyword">sizeof</span>(thname) - 1) {</div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160; <span class="keywordflow">if</span> (isalnum(c))</div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160; thname[nthname++] = c;</div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160; p++;</div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160; }</div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160; strcat(thname, <span class="stringliteral">&quot;&lt;NONAM&gt;&quot;</span>);</div><div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160; nthname = strlen(thname);</div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160; }</div><div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160; thname[nthname] = 0;</div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;<span class="preprocessor">#if defined(__linux__)</span></div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160; pthread_setname_np(rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>, thname);</div><div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;<span class="preprocessor">#elif defined(__FreeBSD__)</span></div><div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160; pthread_set_name_np(rfi-&gt;<a class="code" href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">remmina_plugin_thread</a>, thname);</div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160;</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;}</div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;</div><div class="line"><a name="l02507"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76"> 2507</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;{</div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Requesting to close the connection&quot;</span>);</div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160; <a class="code" href="structremmina__plugin__rdp__event.html">RemminaPluginRdpEvent</a> rdp_event = { 0 };</div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;</div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160; <span class="keywordflow">if</span> (!remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a997a36825f2338b8e06bcd59becef61b">is_main_thread</a>())</div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160; g_warning(<span class="stringliteral">&quot;WARNING: %s called on a subthread, which may not work or crash Remmina.&quot;</span>, __func__);</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;</div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160; <span class="keywordflow">if</span> (rfi &amp;&amp; !rfi-&gt;<a class="code" href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">connected</a>) {</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160; <span class="comment">/* libfreerdp is attempting to connect, we cannot interrupt our main thread</span></div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;<span class="comment"> * in the connect phase.</span></div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160;<span class="comment"> * So we remove &quot;plugin-data&quot; from gp, so our rfi remains &quot;orphan&quot;</span></div><div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160; <a class="code" href="rdp__event_8c.html#a65eef99dc99f77be815a5da804ed94fc">remmina_rdp_event_uninit</a>(gp);</div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160; g_object_steal_data(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>);</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(gp);</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160; }</div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160; <span class="keywordflow">if</span> (rfi &amp;&amp; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#aed59c73dc8dafbc915eb7db687221e89">srv_clip_data_wait</a> == SCDW_BUSY_WAIT) {</div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[RDP] requesting clipboard transfer to abort&quot;</span>);</div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160; <span class="comment">/* Allow clipboard transfer from server to terminate */</span></div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a72d2a3d60347327237692947df93aea7">clipboard</a>.<a class="code" href="structrf__clipboard.html#aed59c73dc8dafbc915eb7db687221e89">srv_clip_data_wait</a> = SCDW_ABORTING;</div><div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160; usleep(100000);</div><div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160; }</div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160;</div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160; <span class="keywordflow">if</span> (rfi-&gt;<a class="code" href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">is_reconnecting</a>) {</div><div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160; <span class="comment">/* Special case: window closed when attempting to reconnect */</span></div><div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">stop_reconnecting_requested</a> = TRUE;</div><div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160; }</div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;</div><div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160; rdp_event.<a class="code" href="structremmina__plugin__rdp__event.html#a84797e0cdf4484432740a8946325f126">type</a> = <a class="code" href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a6b5a1dbb05d7f63d451b84ea5ec85c03">REMMINA_RDP_EVENT_DISCONNECT</a>;</div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160; <a class="code" href="rdp__event_8c.html#ad446d6471bddba97f8bfcee8c51e4580">remmina_rdp_event_event_push</a>(gp, &amp;rdp_event);</div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160;</div><div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160;}</div><div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;</div><div class="line"><a name="l02549"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43"> 2549</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature)</div><div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160;{</div><div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;}</div><div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160;</div><div class="line"><a name="l02555"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19"> 2555</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature)</div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160;{</div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160;</div><div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160; <span class="keywordflow">switch</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20">id</a>) {</div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_UNFOCUS:</div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160; <a class="code" href="rdp__event_8c.html#a4da10c12b28edc28403766994d6ef29c">remmina_rdp_event_unfocus</a>(gp);</div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_SCALE:</div><div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160; <span class="keywordflow">if</span> (rfi) {</div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160; rfi-&gt;<a class="code" href="structrf__context.html#a96c4689f6bc062482536038cb3b24e78">scale</a> = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ae97f4052c4bbda628682ae071ada27ed">remmina_protocol_widget_get_current_scale_mode</a>(gp);</div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160; <a class="code" href="rdp__event_8c.html#a64ce0c66bb4cb6ddaee263ce8563f497">remmina_rdp_event_update_scale</a>(gp);</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Remmina RDP plugin warning: Null value for rfi by REMMINA_RDP_FEATURE_SCALE&quot;</span>);</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160; }</div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_MULTIMON:</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160; <span class="keywordflow">if</span> (rfi) {</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;multimon&quot;</span>, FALSE)) {</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_UseMultimon, TRUE);</div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160; <span class="comment">/* TODO Add an option for this */</span></div><div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_ForceMultimon, TRUE);</div><div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160; freerdp_settings_set_bool(rfi-&gt;<a class="code" href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">settings</a>, FreeRDP_Fullscreen, TRUE);</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160; <a class="code" href="rdp__event_8c.html#ac7c8d626470553c1659312697811dbfe">remmina_rdp_event_send_delayed_monitor_layout</a>(gp);</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160; }</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Remmina RDP plugin warning: Null value for rfi by REMMINA_RDP_FEATURE_MULTIMON&quot;</span>);</div><div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160; }</div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160;</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_DYNRESUPDATE:</div><div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_TOOL_REFRESH:</div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160; <span class="keywordflow">if</span> (rfi)</div><div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160; gtk_widget_queue_draw_area(rfi-&gt;<a class="code" href="structrf__context.html#acee2095e72fb2428c498f62e21800026">drawing_area</a>, 0, 0,</div><div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#adf255b7ceaec6a51fc9269cf824a02ce">protocol_plugin_get_width</a>(gp),</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#aa159850f20499e5bc1067f533d2fa820">protocol_plugin_get_height</a>(gp));</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;Remmina RDP plugin warning: Null value for rfi by REMMINA_RDP_FEATURE_TOOL_REFRESH&quot;</span>);</div><div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160;</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160; <span class="keywordflow">case</span> REMMINA_RDP_FEATURE_TOOL_SENDCTRLALTDEL:</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160; <a class="code" href="rdp__plugin_8c.html#a04920ffa78f21d63806d544fcca9c56e">remmina_rdp_send_ctrlaltdel</a>(gp);</div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160;</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160; }</div><div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160;}</div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160;<span class="comment">/* Send a keystroke to the plugin window */</span></div><div class="line"><a name="l02611"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b"> 2611</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, <span class="keyword">const</span> guint keystrokes[], <span class="keyword">const</span> gint keylen)</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160;{</div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160;</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a2d6704aa58ecc18ecc178ea418addd87">protocol_plugin_send_keys_signals</a>(rfi-&gt;<a class="code" href="structrf__context.html#acee2095e72fb2428c498f62e21800026">drawing_area</a>,</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160; keystrokes, keylen, GDK_KEY_PRESS | GDK_KEY_RELEASE);</div><div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160;}</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;</div><div class="line"><a name="l02621"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30"> 2621</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, <a class="code" href="struct___remmina_plugin_screenshot_data.html">RemminaPluginScreenshotData</a> *rpsd)</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160;{</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160; <a class="code" href="structrf__context.html">rfContext</a> *rfi = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160; rdpGdi *gdi;</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160; <span class="keywordtype">size_t</span> szmem;</div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160;</div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160; UINT32 bytesPerPixel;</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160; UINT32 bitsPerPixel;</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160;</div><div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160; <span class="keywordflow">if</span> (!rfi)</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160;</div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160; gdi = ((rdpContext *)rfi)-&gt;gdi;</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160;</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160; bytesPerPixel = GetBytesPerPixel(gdi-&gt;hdc-&gt;format);</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160; bitsPerPixel = GetBitsPerPixel(gdi-&gt;hdc-&gt;format);</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;</div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160; szmem = gdi-&gt;width * gdi-&gt;height * bytesPerPixel;</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;</div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;allocating %zu bytes for a full screenshot&quot;</span>, szmem);</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a> = malloc(szmem);</div><div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160; <span class="keywordflow">if</span> (!rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>) {</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;could not set aside %zu bytes for a full screenshot&quot;</span>, szmem);</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160; }</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">width</a> = gdi-&gt;width;</div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">height</a> = gdi-&gt;height;</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">bitsPerPixel</a> = bitsPerPixel;</div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160; rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">bytesPerPixel</a> = bytesPerPixel;</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160;</div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160; memcpy(rpsd-&gt;<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>, gdi-&gt;primary_buffer, szmem);</div><div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160;</div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160; <span class="comment">/* Returning TRUE instruct also the caller to deallocate rpsd-&gt;buffer */</span></div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160;}</div><div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160;</div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160;<span class="comment">/* Array of key/value pairs for colour depths */</span></div><div class="line"><a name="l02661"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1"> 2661</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>[] =</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;{</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160; <span class="comment">/* 1st one is the default in a new install */</span></div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160; <span class="stringliteral">&quot;99&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Automatic (32 bpp) (Server chooses its best format)&quot;</span>),</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160; <span class="stringliteral">&quot;66&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX AVC444 (32 bpp)&quot;</span>),</div><div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160; <span class="stringliteral">&quot;65&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX AVC420 (32 bpp)&quot;</span>),</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160; <span class="stringliteral">&quot;64&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX RFX (32 bpp)&quot;</span>),</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160; <span class="stringliteral">&quot;63&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;GFX RFX Progressive (32 bpp)&quot;</span>),</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160; <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RemoteFX (32 bpp)&quot;</span>),</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160; <span class="stringliteral">&quot;32&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;True colour (32 bpp)&quot;</span>),</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160; <span class="stringliteral">&quot;24&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;True colour (24 bpp)&quot;</span>),</div><div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160; <span class="stringliteral">&quot;16&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High colour (16 bpp)&quot;</span>),</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160; <span class="stringliteral">&quot;15&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High colour (15 bpp)&quot;</span>),</div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160; <span class="stringliteral">&quot;8&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;256 colours (8 bpp)&quot;</span>),</div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160; NULL</div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160;};</div><div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160;</div><div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160;<span class="comment">/* Array of key/value pairs for the FreeRDP logging level */</span></div><div class="line"><a name="l02679"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af98d5eac7e9282802ad973f6313034a2"> 2679</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#af98d5eac7e9282802ad973f6313034a2">log_level</a>[] =</div><div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160;{</div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160; <span class="stringliteral">&quot;INFO&quot;</span>, <span class="stringliteral">&quot;INFO&quot;</span>,</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160; <span class="stringliteral">&quot;FATAL&quot;</span>, <span class="stringliteral">&quot;FATAL&quot;</span>,</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160; <span class="stringliteral">&quot;ERROR&quot;</span>, <span class="stringliteral">&quot;ERROR&quot;</span>,</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160; <span class="stringliteral">&quot;WARN&quot;</span>, <span class="stringliteral">&quot;WARN&quot;</span>,</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160; <span class="stringliteral">&quot;DEBUG&quot;</span>, <span class="stringliteral">&quot;DEBUG&quot;</span>,</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160; <span class="stringliteral">&quot;TRACE&quot;</span>, <span class="stringliteral">&quot;TRACE&quot;</span>,</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160; <span class="stringliteral">&quot;OFF&quot;</span>, <span class="stringliteral">&quot;OFF&quot;</span>,</div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160; NULL</div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160;};</div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160;</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;<span class="comment">/* Array of key/value pairs for quality selection */</span></div><div class="line"><a name="l02693"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7"> 2693</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a>[] =</div><div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;{</div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160; <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Poor (fastest)&quot;</span>),</div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160; <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Medium&quot;</span>),</div><div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160; <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Good&quot;</span>),</div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160; <span class="stringliteral">&quot;9&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Best (slowest)&quot;</span>),</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160; NULL</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;};</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160;</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160;<span class="comment">/* Array of key/value pairs for quality selection */</span></div><div class="line"><a name="l02703"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe"> 2703</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a>[] =</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;{</div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160; <span class="stringliteral">&quot;none&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;None&quot;</span>),</div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160; <span class="stringliteral">&quot;autodetect&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Auto-detect&quot;</span>),</div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160; <span class="stringliteral">&quot;modem&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Modem&quot;</span>),</div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160; <span class="stringliteral">&quot;broadband-low&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Low performance broadband&quot;</span>),</div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160; <span class="stringliteral">&quot;satellite&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Satellite&quot;</span>),</div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160; <span class="stringliteral">&quot;broadband-high&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;High performance broadband&quot;</span>),</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160; <span class="stringliteral">&quot;wan&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;WAN&quot;</span>),</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160; <span class="stringliteral">&quot;lan&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;LAN&quot;</span>),</div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160; NULL</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;};</div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160;</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160;<span class="comment">/* Array of key/value pairs for sound options */</span></div><div class="line"><a name="l02717"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a36918dbbfad26310cfe3a3aed5f8f5dc"> 2717</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a36918dbbfad26310cfe3a3aed5f8f5dc">sound_list</a>[] =</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160;{</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160; <span class="stringliteral">&quot;off&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Off&quot;</span>),</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160; <span class="stringliteral">&quot;local&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local&quot;</span>),</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160; <span class="stringliteral">&quot;remote&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote&quot;</span>),</div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160; NULL</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;};</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;<span class="comment">/* Array of key/value pairs for security */</span></div><div class="line"><a name="l02726"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a2f9e1bbd16e19411adbd6a423a9b571f"> 2726</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a2f9e1bbd16e19411adbd6a423a9b571f">security_list</a>[] =</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;{</div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160; <span class="stringliteral">&quot;&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Automatic negotiation&quot;</span>),</div><div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160; <span class="stringliteral">&quot;nla&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;NLA protocol security&quot;</span>),</div><div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160; <span class="stringliteral">&quot;tls&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TLS protocol security&quot;</span>),</div><div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160; <span class="stringliteral">&quot;rdp&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP protocol security&quot;</span>),</div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160; <span class="stringliteral">&quot;ext&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;NLA extended protocol security&quot;</span>),</div><div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160; NULL</div><div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160;};</div><div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;</div><div class="line"><a name="l02736"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#aa3191c66b2dabbb1a3c3c5474c6e9626"> 2736</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#aa3191c66b2dabbb1a3c3c5474c6e9626">gwtransp_list</a>[] =</div><div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160;{</div><div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160; <span class="stringliteral">&quot;http&quot;</span>, <span class="stringliteral">&quot;HTTP&quot;</span>,</div><div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160; <span class="stringliteral">&quot;rpc&quot;</span>, <span class="stringliteral">&quot;RPC&quot;</span>,</div><div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160; <span class="stringliteral">&quot;auto&quot;</span>, <span class="stringliteral">&quot;Auto&quot;</span>,</div><div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160; NULL</div><div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160;};</div><div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160;</div><div class="line"><a name="l02744"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a4faaf64a28ae81730aa4677693b51650"> 2744</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="rdp__plugin_8c.html#a4faaf64a28ae81730aa4677693b51650">tls_seclevel</a>[] =</div><div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160;{</div><div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160; <span class="stringliteral">&quot;&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Default&quot;</span>),</div><div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160; <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;0 — Windows 7 compatible&quot;</span>),</div><div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160; <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;1&quot;</span>),</div><div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160; <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;2&quot;</span>),</div><div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160; <span class="stringliteral">&quot;3&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;3&quot;</span>),</div><div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160; <span class="stringliteral">&quot;4&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;4&quot;</span>),</div><div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160; <span class="stringliteral">&quot;5&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;5&quot;</span>),</div><div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160; NULL</div><div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160;};</div><div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160;</div><div class="line"><a name="l02756"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a7565748ab340f2e7c66bcb755e006bd5"> 2756</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a7565748ab340f2e7c66bcb755e006bd5">clientbuild_list</a>[] =</div><div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;2600 (Windows XP), 7601 (Windows Vista/7), 9600 (Windows 8 and newer)&quot;</span>);</div><div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160;</div><div class="line"><a name="l02759"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a6910d98a00cac88fb257d9bb2d080243"> 2759</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a6910d98a00cac88fb257d9bb2d080243">clientbuild_tooltip</a>[] =</div><div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Used i.a. by terminal services in a smart card channel to distinguish client capabilities:\n&quot;</span></div><div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160; <span class="stringliteral">&quot; • &lt; 4034: Windows XP base smart card functions\n&quot;</span></div><div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160; <span class="stringliteral">&quot; • 4034-7064: Windows Vista/7: SCardReadCache(),\n&quot;</span></div><div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160; <span class="stringliteral">&quot; SCardWriteCache(), SCardGetTransmitCount()\n&quot;</span></div><div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160; <span class="stringliteral">&quot; • &gt;= 7065: Windows 8 and newer: SCardGetReaderIcon(),\n&quot;</span></div><div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160; <span class="stringliteral">&quot; SCardGetDeviceTypeId()&quot;</span>);</div><div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160;</div><div class="line"><a name="l02767"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ae179a744d3cb61fe894c2dc0d278da71"> 2767</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#ae179a744d3cb61fe894c2dc0d278da71">microphone_tooltip</a>[] =</div><div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of audio input:\n&quot;</span></div><div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160; <span class="stringliteral">&quot; • [sys:&lt;sys&gt;,][dev:&lt;dev&gt;,][format:&lt;format&gt;,][rate:&lt;rate&gt;,]\n&quot;</span></div><div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160; <span class="stringliteral">&quot; [channel:&lt;channel&gt;] Audio input (microphone)\n&quot;</span></div><div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160; <span class="stringliteral">&quot; • sys:pulse\n&quot;</span></div><div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160; <span class="stringliteral">&quot; • format:1\n&quot;</span></div><div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160; <span class="stringliteral">&quot; • sys:oss,dev:1,format:1\n&quot;</span></div><div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160; <span class="stringliteral">&quot; • sys:alsa&quot;</span>);</div><div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160;</div><div class="line"><a name="l02776"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a96a6da204741a7275dd7001e041cc86d"> 2776</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a96a6da204741a7275dd7001e041cc86d">audio_tooltip</a>[] =</div><div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of audio output:\n&quot;</span></div><div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160; <span class="stringliteral">&quot; • [sys:&lt;sys&gt;,][dev:&lt;dev&gt;,][format:&lt;format&gt;,][rate:&lt;rate&gt;,]\n&quot;</span></div><div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160; <span class="stringliteral">&quot; [channel:&lt;channel&gt;] Audio output\n&quot;</span></div><div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160; <span class="stringliteral">&quot; • sys:pulse\n&quot;</span></div><div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>&#160; <span class="stringliteral">&quot; • format:1\n&quot;</span></div><div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160; <span class="stringliteral">&quot; • sys:oss,dev:1,format:1\n&quot;</span></div><div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>&#160; <span class="stringliteral">&quot; • sys:alsa&quot;</span>);</div><div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160;</div><div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160;</div><div class="line"><a name="l02786"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b"> 2786</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b">usb_tooltip</a>[] =</div><div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Options for redirection of USB device:\n&quot;</span></div><div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160; <span class="stringliteral">&quot; • [dbg,][id:&lt;vid&gt;:&lt;pid&gt;#…,][addr:&lt;bus&gt;:&lt;addr&gt;#…,][auto]\n&quot;</span></div><div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160; <span class="stringliteral">&quot; • auto\n&quot;</span></div><div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160; <span class="stringliteral">&quot; • id:054c:0268#4669:6e6b,addr:04:0c&quot;</span>);</div><div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160;</div><div class="line"><a name="l02792"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a521e1d4c1a3175d5c56faeed41b069a4"> 2792</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a521e1d4c1a3175d5c56faeed41b069a4">timeout_tooltip</a>[] =</div><div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Advanced setting for high latency links:\n&quot;</span></div><div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160; <span class="stringliteral">&quot;Adjusts the connection timeout. Use if your connection times out.\n&quot;</span></div><div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160; <span class="stringliteral">&quot;The highest possible value is 600000 ms (10 minutes).\n&quot;</span>);</div><div class="line"><a name="l02796"></a><span class="lineno"> 2796</span>&#160;</div><div class="line"><a name="l02797"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0"> 2797</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a>[] =</div><div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Performance optimisations based on the network connection type:\n&quot;</span></div><div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160; <span class="stringliteral">&quot;Using auto-detection is advised.\n&quot;</span></div><div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160; <span class="stringliteral">&quot;If “Auto-detect” fails, choose the most appropriate option in the list.\n&quot;</span>);</div><div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>&#160;</div><div class="line"><a name="l02802"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de"> 2802</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a>[] =</div><div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Comma-separated list of monitor IDs and desktop orientations:\n&quot;</span></div><div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160; <span class="stringliteral">&quot; • [&lt;id&gt;:&lt;orientation-in-degrees&gt;,]\n&quot;</span></div><div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160; <span class="stringliteral">&quot; • 0,1,2,3\n&quot;</span></div><div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160; <span class="stringliteral">&quot; • 0:270,1:90\n&quot;</span></div><div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160; <span class="stringliteral">&quot;Orientations are specified in degrees, valid values are:\n&quot;</span></div><div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160; <span class="stringliteral">&quot; • 0 (landscape)\n&quot;</span></div><div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160; <span class="stringliteral">&quot; • 90 (portrait)\n&quot;</span></div><div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>&#160; <span class="stringliteral">&quot; • 180 (landscape flipped)\n&quot;</span></div><div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160; <span class="stringliteral">&quot; • 270 (portrait flipped)\n&quot;</span></div><div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160;</div><div class="line"><a name="l02814"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1"> 2814</a></span>&#160;<span class="keyword">static</span> gchar <a class="code" href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a>[] =</div><div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Redirect directory &lt;path&gt; as named share &lt;name&gt;.\n&quot;</span></div><div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160; <span class="stringliteral">&quot; • &lt;name&gt;,&lt;fullpath&gt;[;&lt;name&gt;,&lt;fullpath&gt;[;…]]\n&quot;</span></div><div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160; <span class="stringliteral">&quot; • MyHome,/home/remminer\n&quot;</span></div><div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160; <span class="stringliteral">&quot; • /home/remminer\n&quot;</span></div><div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160; <span class="stringliteral">&quot; • MyHome,/home/remminer;SomePath,/path/to/somepath\n&quot;</span></div><div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>&#160; <span class="stringliteral">&quot;Hotplug support is enabled with:\n&quot;</span></div><div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160; <span class="stringliteral">&quot; • hotplug,*\n&quot;</span></div><div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160;</div><div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160;<span class="comment">/* Array of RemminaProtocolSetting for basic settings.</span></div><div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160;<span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160;<span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160;<span class="comment"> * b) Setting name</span></div><div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160;<span class="comment"> * c) Setting description</span></div><div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160;<span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160;<span class="comment"> * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO</span></div><div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160;<span class="comment"> * f) Setting tooltip</span></div><div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160;<span class="comment"> * g) Validation data pointer, will be passed to the validation callback method.</span></div><div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160;<span class="comment"> * h) Validation callback method (Can be NULL. Every entry will be valid then.)</span></div><div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160;<span class="comment"> * use following prototype:</span></div><div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160;<span class="comment"> * gboolean mysetting_validator_method(gpointer key, gpointer value,</span></div><div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160;<span class="comment"> * gpointer validator_data);</span></div><div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>&#160;<span class="comment"> * gpointer key is a gchar* containing the setting&#39;s name,</span></div><div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160;<span class="comment"> * gpointer value contains the value which should be validated,</span></div><div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160;<span class="comment"> * gpointer validator_data contains your passed data.</span></div><div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02841"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1"> 2841</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> <a class="code" href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a>[] =</div><div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>&#160;{</div><div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;domain&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Domain&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;drive&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share folder&quot;</span>), FALSE, NULL, <a class="code" href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a>, NULL, NULL },</div><div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;restricted-admin&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Restricted admin mode&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;pth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password hash&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Restricted admin mode password hash&quot;</span>), NULL, NULL },</div><div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;left-handed&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Left-handed mouse support&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Swap left and right mouse buttons for left-handed mouse support&quot;</span>), NULL, NULL },</div><div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disable-smooth-scrolling&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable smooth scrolling&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;multimon&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable multi monitor&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;span&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Span screen over multiple monitors&quot;</span>), TRUE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;monitorids&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;List monitor IDs&quot;</span>), FALSE, NULL, <a class="code" href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a>, NULL, NULL },</div><div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>, <span class="stringliteral">&quot;resolution&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;colordepth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Colour depth&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>, NULL, NULL, NULL },</div><div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;network&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Network connection type&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a>, <a class="code" href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a>, NULL, NULL },</div><div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>, <span class="stringliteral">&quot;keymap&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160;};</div><div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160;</div><div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160;<span class="comment">/* Array of RemminaProtocolSetting for advanced settings.</span></div><div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;<span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;<span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160;<span class="comment"> * b) Setting name</span></div><div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;<span class="comment"> * c) Setting description</span></div><div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160;<span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>&#160;<span class="comment"> * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO</span></div><div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160;<span class="comment"> * f) Setting Tooltip</span></div><div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02871"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f"> 2871</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> <a class="code" href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a>[] =</div><div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160;{</div><div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;quality&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Quality&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a>, NULL },</div><div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;security&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Security protocol negotiation&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a2f9e1bbd16e19411adbd6a423a9b571f">security_list</a>, NULL },</div><div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;gwtransp&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Gateway transport type&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#aa3191c66b2dabbb1a3c3c5474c6e9626">gwtransp_list</a>, NULL },</div><div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;tls-seclevel&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TLS Security Level&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a4faaf64a28ae81730aa4677693b51650">tls_seclevel</a>, NULL },</div><div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;freerdp_log_level&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FreeRDP log level&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#af98d5eac7e9282802ad973f6313034a2">log_level</a>, NULL },</div><div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;freerdp_log_filters&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FreeRDP log filters&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;tag:level[,tag:level[,…]]&quot;</span>) },</div><div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;sound&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Audio output mode&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a36918dbbfad26310cfe3a3aed5f8f5dc">sound_list</a>, NULL },</div><div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;audio-output&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Redirect local audio output&quot;</span>), TRUE, NULL, <a class="code" href="rdp__plugin_8c.html#a96a6da204741a7275dd7001e041cc86d">audio_tooltip</a> },</div><div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;microphone&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Redirect local microphone&quot;</span>), TRUE, NULL, <a class="code" href="rdp__plugin_8c.html#ae179a744d3cb61fe894c2dc0d278da71">microphone_tooltip</a> },</div><div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;timeout&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Connection timeout in ms&quot;</span>), TRUE, NULL, <a class="code" href="rdp__plugin_8c.html#a521e1d4c1a3175d5c56faeed41b069a4">timeout_tooltip</a> },</div><div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;gateway_server&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote Desktop Gateway server&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;gateway_username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote Desktop Gateway username&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;gateway_password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote Desktop Gateway password&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;gateway_domain&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Remote Desktop Gateway domain&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;clientname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Client name&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>, <span class="stringliteral">&quot;clientbuild&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Client build&quot;</span>), FALSE, <a class="code" href="rdp__plugin_8c.html#a7565748ab340f2e7c66bcb755e006bd5">clientbuild_list</a>, <a class="code" href="rdp__plugin_8c.html#a6910d98a00cac88fb257d9bb2d080243">clientbuild_tooltip</a> },</div><div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;exec&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start-up program&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execpath&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start-up path&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;loadbalanceinfo&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Load balance info&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160; <span class="comment">// TRANSLATORS: Do not use typographic quotation marks, these must stay as &quot;double quote&quot;, also know as “Typewriter (&quot;programmer&#39;s&quot;) quote, ambidextrous.”</span></div><div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;printer_overrides&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Override printer drivers&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;\&quot;Samsung_CLX-3300_Series\&quot;:\&quot;Samsung CLX-3300 Series PS\&quot;;\&quot;Canon MF410\&quot;:\&quot;Canon MF410 Series UFR II\&quot;&quot;</span>) },</div><div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;usb&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;USB device redirection&quot;</span>), TRUE, NULL, <a class="code" href="rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b">usb_tooltip</a> },</div><div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;serialname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local serial name&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;COM1, COM2, etc.&quot;</span>) },</div><div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;serialdriver&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local serial driver&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Serial&quot;</span>) },</div><div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;serialpath&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local serial path&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;/dev/ttyS0, /dev/ttyS1, etc.&quot;</span>) },</div><div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;parallelname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local parallel name&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;parallelpath&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Local parallel device&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;smartcardname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Name of smart card&quot;</span>), FALSE, NULL, NULL },</div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;dvc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Dynamic virtual channel&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;channel&gt;[,&lt;options&gt;]&quot;</span>) },</div><div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;vc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Static virtual channel&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;channel&gt;[,&lt;options&gt;]&quot;</span>) },</div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;rdp2tcp&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TCP redirection&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;/PATH/TO/rdp2tcp&quot;</span>) },</div><div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;rdp_reconnect_attempts&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Reconnect attempts number&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;The maximum number of reconnect attempts upon an RDP disconnect (default: 20)&quot;</span>) },</div><div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a>, <span class="stringliteral">&quot;assistance_mode&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Attempt to connect in assistnace mode&quot;</span>), TRUE, NULL },</div><div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;preferipv6&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Prefer IPv6 AAAA record over IPv4 A record&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;shareprinter&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share printers&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;shareserial&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share serial ports&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;serialpermissive&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;(SELinux) permissive mode for serial ports&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;shareparallel&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share parallel ports&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;sharesmartcard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share a smart card&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableclipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off clipboard sync&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;cert_ignore&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Ignore certificate&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;old-license&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use the old license workflow&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;It disables CAL and hwId is set to 0&quot;</span>) },</div><div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;console&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Attach to console (2003/2003 R2)&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disable_fastpath&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off fast-path&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;gateway_usage&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Server detection using Remote Desktop Gateway&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;<span class="preprocessor">#if defined(PROXY_TYPE_IGNORE)</span></div><div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;useproxyenv&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use system proxy settings&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableautoreconnect&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off automatic reconnection&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;relax-order-checks&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Relax order checks&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;glyph-cache&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Glyph cache&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;multitransport&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable multitransport protocol (UDP)&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Using the UDP protocol may improve performance&quot;</span>) },</div><div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;base-cred-for-gw&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use base credentials for gateway too&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;<span class="preprocessor">#if FREERDP_CHECK_VERSION(2, 3, 1)</span></div><div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;websockets&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable Gateway websockets support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;no-suppress&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Update framebuffer even when not visible&quot;</span>), TRUE, NULL },</div><div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;};</div><div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;</div><div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160;<span class="comment">/* Array for available features.</span></div><div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160;<span class="comment"> * The last element of the array must be REMMINA_PROTOCOL_FEATURE_TYPE_END. */</span></div><div class="line"><a name="l02936"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e"> 2936</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> <a class="code" href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a>[] =</div><div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160;{</div><div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>, REMMINA_RDP_FEATURE_VIEWONLY, GINT_TO_POINTER(REMMINA_PROTOCOL_FEATURE_PREF_CHECK), <span class="stringliteral">&quot;viewonly&quot;</span>,</div><div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;View only&quot;</span>) },</div><div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>, REMMINA_RDP_FEATURE_TOOL_REFRESH, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Refresh&quot;</span>), NULL, NULL },</div><div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>, REMMINA_RDP_FEATURE_SCALE, NULL, NULL, NULL },</div><div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a>, REMMINA_RDP_FEATURE_DYNRESUPDATE, NULL, NULL, NULL },</div><div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a>, REMMINA_RDP_FEATURE_MULTIMON, NULL, NULL, NULL },</div><div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>, REMMINA_RDP_FEATURE_TOOL_SENDCTRLALTDEL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Send Ctrl+Alt+Delete&quot;</span>), NULL, NULL },</div><div class="line"><a name="l02945"></a><span class="lineno"> 2945</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a>, REMMINA_RDP_FEATURE_UNFOCUS, NULL, NULL, NULL },</div><div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>&#160; { <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4">REMMINA_PROTOCOL_FEATURE_TYPE_END</a>, 0, NULL, NULL, NULL }</div><div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160;};</div><div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160;</div><div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160;<span class="comment">/* This will be filled with version info string */</span></div><div class="line"><a name="l02950"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4"> 2950</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>[256];</div><div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>&#160;</div><div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>&#160;<span class="comment">/* Protocol plugin definition and features */</span></div><div class="line"><a name="l02953"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a8cad107c77386b752f338d6c7f2b6a0a"> 2953</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> <a class="code" href="rdp__plugin_8c.html#a8cad107c77386b752f338d6c7f2b6a0a">remmina_rdp</a> =</div><div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160;{</div><div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, <span class="comment">// Type</span></div><div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160; <span class="stringliteral">&quot;RDP&quot;</span>, <span class="comment">// Name</span></div><div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - Remote Desktop Protocol&quot;</span>), <span class="comment">// Description</span></div><div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160; <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, <span class="comment">// Version number</span></div><div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160; <span class="stringliteral">&quot;org.remmina.Remmina-rdp-symbolic&quot;</span>, <span class="comment">// Icon for normal connection</span></div><div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160; <span class="stringliteral">&quot;org.remmina.Remmina-rdp-ssh-symbolic&quot;</span>, <span class="comment">// Icon for SSH connection</span></div><div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160; <a class="code" href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a>, <span class="comment">// Array for basic settings</span></div><div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160; <a class="code" href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a>, <span class="comment">// Array for advanced settings</span></div><div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>, <span class="comment">// SSH settings type</span></div><div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160; <a class="code" href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a>, <span class="comment">// Array for available features</span></div><div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160; <a class="code" href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a>, <span class="comment">// Plugin initialization</span></div><div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160; <a class="code" href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a>, <span class="comment">// Plugin open connection</span></div><div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160; <a class="code" href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a>, <span class="comment">// Plugin close connection</span></div><div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160; <a class="code" href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a>, <span class="comment">// Query for available features</span></div><div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160; <a class="code" href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a>, <span class="comment">// Call a feature</span></div><div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160; <a class="code" href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a>, <span class="comment">// Send a keystroke</span></div><div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160; <a class="code" href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a>, <span class="comment">// Screenshot</span></div><div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160; <a class="code" href="rdp__event_8c.html#a09271b787fc086f05a8a6e7c3282d6aa">remmina_rdp_event_on_map</a>, <span class="comment">// RCW map event</span></div><div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160; <a class="code" href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">remmina_rdp_event_on_unmap</a> <span class="comment">// RCW unmap event</span></div><div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160;};</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160;</div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160;<span class="comment">/* File plugin definition and features */</span></div><div class="line"><a name="l02978"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a4d69cf4d703b55b87d1de06493e2a619"> 2978</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a> <a class="code" href="rdp__plugin_8c.html#a4d69cf4d703b55b87d1de06493e2a619">remmina_rdpf</a> =</div><div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160;{</div><div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac">REMMINA_PLUGIN_TYPE_FILE</a>, <span class="comment">// Type</span></div><div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160; <span class="stringliteral">&quot;RDPF&quot;</span>, <span class="comment">// Name</span></div><div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - RDP File Handler&quot;</span>), <span class="comment">// Description</span></div><div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160; <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, <span class="comment">// Version number</span></div><div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160; <a class="code" href="rdp__file_8c.html#a5465339535714b34c0f60a4ca386e335">remmina_rdp_file_import_test</a>, <span class="comment">// Test import function</span></div><div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160; <a class="code" href="rdp__file_8c.html#a992b5a31dfa961cb3244cb3e2084c4cf">remmina_rdp_file_import</a>, <span class="comment">// Import function</span></div><div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160; <a class="code" href="rdp__file_8c.html#aa3a9bcd9fdbbf8906d74acf57bd5ab90">remmina_rdp_file_export_test</a>, <span class="comment">// Test export function</span></div><div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160; <a class="code" href="rdp__file_8c.html#a0141f87575bf2b97219541b419ed467e">remmina_rdp_file_export</a>, <span class="comment">// Export function</span></div><div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160; NULL</div><div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;};</div><div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;</div><div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160;<span class="comment">/* Preferences plugin definition and features */</span></div><div class="line"><a name="l02993"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#af43b1397163aab939f9e88ed201d52ba"> 2993</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_pref_plugin.html">RemminaPrefPlugin</a> <a class="code" href="rdp__plugin_8c.html#af43b1397163aab939f9e88ed201d52ba">remmina_rdps</a> =</div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;{</div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757">REMMINA_PLUGIN_TYPE_PREF</a>, <span class="comment">// Type</span></div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160; <span class="stringliteral">&quot;RDPS&quot;</span>, <span class="comment">// Name</span></div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160; <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;RDP - Preferences&quot;</span>), <span class="comment">// Description</span></div><div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160; <a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, <span class="comment">// Version number</span></div><div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160; <span class="stringliteral">&quot;RDP&quot;</span>, <span class="comment">// Label</span></div><div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160; <a class="code" href="rdp__settings_8c.html#a55dda4fb09dc13dafba65becda89e194">remmina_rdp_settings_new</a> <span class="comment">// Preferences body function</span></div><div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160;};</div><div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160;</div><div class="line"><a name="l03004"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a7031208f6cbf262a2e69fe971f248591"> 3004</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">char</span> *<a class="code" href="rdp__plugin_8c.html#a7031208f6cbf262a2e69fe971f248591">buildconfig_strstr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *bc, <span class="keyword">const</span> <span class="keywordtype">char</span> *option)</div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;{</div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;</div><div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160; <span class="keywordtype">char</span> *p, *n;</div><div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160;</div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160; p = strcasestr(bc, option);</div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;</div><div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160; <span class="keywordflow">if</span> (p &gt; bc &amp;&amp; *(p - 1) &gt; <span class="charliteral">&#39; &#39;</span>)</div><div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160;</div><div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160; n = p + strlen(option);</div><div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160; <span class="keywordflow">if</span> (*n &gt; <span class="charliteral">&#39; &#39;</span>)</div><div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>&#160;</div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160; <span class="keywordflow">return</span> p;</div><div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160;}</div><div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160;</div><div class="line"><a name="l03024"></a><span class="lineno"><a class="line" href="rdp__plugin_8c.html#a56e5020de11446dbc23f3480e313f208"> 3024</a></span>&#160;G_MODULE_EXPORT gboolean <a class="code" href="rdp__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a>(<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *service)</div><div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>&#160;{</div><div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160; <span class="keywordtype">int</span> vermaj, vermin, verrev;</div><div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160;</div><div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160; remmina_plugin_service = service;</div><div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160;</div><div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160; <span class="comment">/* Check that we are linked to the correct version of libfreerdp */</span></div><div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160;</div><div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160; freerdp_get_version(&amp;vermaj, &amp;vermin, &amp;verrev);</div><div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160; <span class="keywordflow">if</span> (vermaj &lt; FREERDP_REQUIRED_MAJOR ||</div><div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160; (vermaj == FREERDP_REQUIRED_MAJOR &amp;&amp; (vermin &lt; FREERDP_REQUIRED_MINOR ||</div><div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160; (vermin == FREERDP_REQUIRED_MINOR &amp;&amp; verrev &lt; FREERDP_REQUIRED_REVISION)))) {</div><div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>&#160; g_printf(<span class="stringliteral">&quot;Upgrade your FreeRDP library version from %d.%d.%d to at least libfreerdp %d.%d.%d &quot;</span></div><div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160; <span class="stringliteral">&quot;to run the RDP plugin.\n&quot;</span>,</div><div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160; vermaj, vermin, verrev,</div><div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160; FREERDP_REQUIRED_MAJOR, FREERDP_REQUIRED_MINOR, FREERDP_REQUIRED_REVISION);</div><div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160; }</div><div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;</div><div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160; bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160; bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">&quot;UTF-8&quot;</span>);</div><div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160;</div><div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *)&amp;remmina_rdp))</div><div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160;</div><div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160; remmina_rdpf.<a class="code" href="struct___remmina_file_plugin.html#ac4f2b0118490cede0577aaee9f2e0b5f">export_hints</a> = _(<span class="stringliteral">&quot;Export connection in Windows .rdp file format&quot;</span>);</div><div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160;</div><div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *)&amp;remmina_rdpf))</div><div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160;</div><div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *)&amp;remmina_rdps))</div><div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160;</div><div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="rdp__plugin_8c.html#a7031208f6cbf262a2e69fe971f248591">buildconfig_strstr</a>(freerdp_get_build_config(), <span class="stringliteral">&quot;WITH_GFX_H264=ON&quot;</span>)) {</div><div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160; <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> = TRUE;</div><div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;gfx_h264_available: %d&quot;</span>, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160; <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> = FALSE;</div><div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;gfx_h264_available: %d&quot;</span>, <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a>);</div><div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160; <span class="comment">/* Remove values 65 and 66 from colordepth_list array by shifting it */</span></div><div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160; gpointer *src, *dst;</div><div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160; dst = src = <a class="code" href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>;</div><div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>&#160; <span class="keywordflow">while</span> (*src) {</div><div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>&#160; <span class="keywordflow">if</span> (strcmp(*src, <span class="stringliteral">&quot;66&quot;</span>) != 0 &amp;&amp; strcmp(*src, <span class="stringliteral">&quot;65&quot;</span>) != 0) {</div><div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>&#160; <span class="keywordflow">if</span> (dst != src) {</div><div class="line"><a name="l03070"></a><span class="lineno"> 3070</span>&#160; *dst = *src;</div><div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>&#160; *(dst + 1) = *(src + 1);</div><div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160; }</div><div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160; dst += 2;</div><div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160; }</div><div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160; src += 2;</div><div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160; }</div><div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160; *dst = NULL;</div><div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160; }</div><div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160;</div><div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>&#160; snprintf(<a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>, <span class="keyword">sizeof</span>(<a class="code" href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a>),</div><div class="line"><a name="l03081"></a><span class="lineno"> 3081</span>&#160; <span class="stringliteral">&quot;RDP plugin: %s (Git %s), Compiled with libfreerdp %s (%s), Running with libfreerdp %s (rev %s), H.264 %s&quot;</span>,</div><div class="line"><a name="l03082"></a><span class="lineno"> 3082</span>&#160; VERSION, REMMINA_GIT_REVISION,</div><div class="line"><a name="l03083"></a><span class="lineno"> 3083</span>&#160;#ifdef WITH_FREERDP3</div><div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>&#160; FREERDP_VERSION_FULL, FREERDP_GIT_REVISION,</div><div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160;#<span class="keywordflow">else</span></div><div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160; FREERDP_VERSION_FULL, GIT_REVISION,</div><div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160;#endif</div><div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160; freerdp_get_version_string(),</div><div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160; freerdp_get_build_revision(),</div><div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160; <a class="code" href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a> ? <span class="stringliteral">&quot;Yes&quot;</span> : <span class="stringliteral">&quot;No&quot;</span></div><div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160; );</div><div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>&#160;</div><div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>&#160; <a class="code" href="rdp__settings_8c.html#acf37368f3376add8547723d13443cccb">remmina_rdp_settings_init</a>();</div><div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160;</div><div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160;}</div><div class="ttc" id="structrf__clipboard_html_a773214c0bb4f351a609a085f786304aa"><div class="ttname"><a href="structrf__clipboard.html#a773214c0bb4f351a609a085f786304aa">rf_clipboard::context</a></div><div class="ttdeci">CliprdrClientContext * context</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00135">rdp_plugin.h:135</a></div></div>
<div class="ttc" id="structregion_html_a3b8e9f37558f5a790945b9dc1cbcadb6"><div class="ttname"><a href="structregion.html#a3b8e9f37558f5a790945b9dc1cbcadb6">region::w</a></div><div class="ttdeci">gint w</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00262">rdp_plugin.h:262</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html_ada88729499d8df4337a81d1cd5bcd7bf"><div class="ttname"><a href="structremmina__plugin__rdp__event.html#ada88729499d8df4337a81d1cd5bcd7bf">remmina_plugin_rdp_event::mouse_event</a></div><div class="ttdeci">struct remmina_plugin_rdp_event::@42::@45 mouse_event</div></div>
<div class="ttc" id="structrf__context_html_aa574515edb4966117f539d26e26f0a62"><div class="ttname"><a href="structrf__context.html#aa574515edb4966117f539d26e26f0a62">rf_context::thread_cancelled</a></div><div class="ttdeci">gboolean thread_cancelled</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00332">rdp_plugin.h:332</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html"><div class="ttname"><a href="struct___remmina_plugin.html">_RemminaPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00056">plugin.h:56</a></div></div>
<div class="ttc" id="structrf__context_html_af40c80ff8296b9bcc3ac437bf0be55f8"><div class="ttname"><a href="structrf__context.html#af40c80ff8296b9bcc3ac437bf0be55f8">rf_context::is_reconnecting</a></div><div class="ttdeci">gboolean is_reconnecting</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00344">rdp_plugin.h:344</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a4faaf64a28ae81730aa4677693b51650"><div class="ttname"><a href="rdp__plugin_8c.html#a4faaf64a28ae81730aa4677693b51650">tls_seclevel</a></div><div class="ttdeci">static gpointer tls_seclevel[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02713">rdp_plugin.c:2713</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a71dcb929602ab5480db3152d297485a0"><div class="ttname"><a href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a></div><div class="ttdeci">static gchar network_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02766">rdp_plugin.c:2766</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a4faaf64a28ae81730aa4677693b51650"><div class="ttname"><a href="rdp__plugin_8c.html#a4faaf64a28ae81730aa4677693b51650">tls_seclevel</a></div><div class="ttdeci">static gpointer tls_seclevel[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02744">rdp_plugin.c:2744</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a71dcb929602ab5480db3152d297485a0"><div class="ttname"><a href="rdp__plugin_8c.html#a71dcb929602ab5480db3152d297485a0">network_tooltip</a></div><div class="ttdeci">static gchar network_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02797">rdp_plugin.c:2797</a></div></div>
<div class="ttc" id="structregion_html_a97015e361d0cbedf7dcab10fbea95b10"><div class="ttname"><a href="structregion.html#a97015e361d0cbedf7dcab10fbea95b10">region::y</a></div><div class="ttdeci">gint y</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00262">rdp_plugin.h:262</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00052">types.h:52</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ae97f4052c4bbda628682ae071ada27ed"><div class="ttname"><a href="struct___remmina_plugin_service.html#ae97f4052c4bbda628682ae071ada27ed">_RemminaPluginService::remmina_protocol_widget_get_current_scale_mode</a></div><div class="ttdeci">RemminaScaleMode(* remmina_protocol_widget_get_current_scale_mode)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00172">plugin.h:172</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a5d1951ac829e885ee7f4955195b5204a"><div class="ttname"><a href="rdp__plugin_8c.html#a5d1951ac829e885ee7f4955195b5204a">remmina_rdp_load_static_channel_addin</a></div><div class="ttdeci">static int remmina_rdp_load_static_channel_addin(rdpChannels *channels, rdpSettings *settings, char *name, void *data)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01048">rdp_plugin.c:1048</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a5f88cb338f10185c43bfc7d711dddee5"><div class="ttname"><a href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a></div><div class="ttdeci">static gboolean remmina_rdp_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02428">rdp_plugin.c:2428</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a5d1951ac829e885ee7f4955195b5204a"><div class="ttname"><a href="rdp__plugin_8c.html#a5d1951ac829e885ee7f4955195b5204a">remmina_rdp_load_static_channel_addin</a></div><div class="ttdeci">static int remmina_rdp_load_static_channel_addin(rdpChannels *channels, rdpSettings *settings, char *name, void *data)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01049">rdp_plugin.c:1049</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a5f88cb338f10185c43bfc7d711dddee5"><div class="ttname"><a href="rdp__plugin_8c.html#a5f88cb338f10185c43bfc7d711dddee5">remmina_rdp_open_connection</a></div><div class="ttdeci">static gboolean remmina_rdp_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02459">rdp_plugin.c:2459</a></div></div>
<div class="ttc" id="structrf__context_html_acacad775c2c168f900deaa6c90481319"><div class="ttname"><a href="structrf__context.html#acacad775c2c168f900deaa6c90481319">rf_context::user_cancelled</a></div><div class="ttdeci">gboolean user_cancelled</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00331">rdp_plugin.h:331</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a64254af45bb17a5a40a3a0383daa3fe7"><div class="ttname"><a href="rdp__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a></div><div class="ttdeci">static gpointer quality_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02662">rdp_plugin.c:2662</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a64254af45bb17a5a40a3a0383daa3fe7"><div class="ttname"><a href="rdp__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a></div><div class="ttdeci">static gpointer quality_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02693">rdp_plugin.c:2693</a></div></div>
<div class="ttc" id="structrf__context_html_a40e89e126e5dd96a3f67e6f945a8867b"><div class="ttname"><a href="structrf__context.html#a40e89e126e5dd96a3f67e6f945a8867b">rf_context::bpp</a></div><div class="ttdeci">gint bpp</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00368">rdp_plugin.h:368</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a04920ffa78f21d63806d544fcca9c56e"><div class="ttname"><a href="rdp__plugin_8c.html#a04920ffa78f21d63806d544fcca9c56e">remmina_rdp_send_ctrlaltdel</a></div><div class="ttdeci">static void remmina_rdp_send_ctrlaltdel(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01231">rdp_plugin.c:1231</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a04920ffa78f21d63806d544fcca9c56e"><div class="ttname"><a href="rdp__plugin_8c.html#a04920ffa78f21d63806d544fcca9c56e">remmina_rdp_send_ctrlaltdel</a></div><div class="ttdeci">static void remmina_rdp_send_ctrlaltdel(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01232">rdp_plugin.c:1232</a></div></div>
<div class="ttc" id="structrf__context_html_a9134f0b8a6352cc257e1e91e162efea3"><div class="ttname"><a href="structrf__context.html#a9134f0b8a6352cc257e1e91e162efea3">rf_context::attempt_interactive_authentication</a></div><div class="ttdeci">gboolean attempt_interactive_authentication</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00388">rdp_plugin.h:388</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a7ac875d202f1ccd0ae85bb60ee3222c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">_RemminaPluginService::protocol_plugin_set_error</a></div><div class="ttdeci">void(* protocol_plugin_set_error)(RemminaProtocolWidget *gp, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00176">plugin.h:176</a></div></div>
<div class="ttc" id="structrf__context_html_a539feef609228a91c5e54d5da837bb7a"><div class="ttname"><a href="structrf__context.html#a539feef609228a91c5e54d5da837bb7a">rf_context::event_pipe</a></div><div class="ttdeci">gint event_pipe[2]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00381">rdp_plugin.h:381</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a4da50fa364ddf1fcf22def341f61a7cb"><div class="ttname"><a href="struct___remmina_plugin_service.html#a4da50fa364ddf1fcf22def341f61a7cb">_RemminaPluginService::file_set_int</a></div><div class="ttdeci">void(* file_set_int)(RemminaFile *remminafile, const gchar *setting, gint value)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00221">plugin.h:221</a></div></div>
<div class="ttc" id="structrf__context_html"><div class="ttname"><a href="structrf__context.html">rf_context</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00319">rdp_plugin.h:319</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a8cad107c77386b752f338d6c7f2b6a0a"><div class="ttname"><a href="rdp__plugin_8c.html#a8cad107c77386b752f338d6c7f2b6a0a">remmina_rdp</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_rdp</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02921">rdp_plugin.c:2921</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a8cad107c77386b752f338d6c7f2b6a0a"><div class="ttname"><a href="rdp__plugin_8c.html#a8cad107c77386b752f338d6c7f2b6a0a">remmina_rdp</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_rdp</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02953">rdp_plugin.c:2953</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a393d4ec6673f6a9c2b71849c109facef"><div class="ttname"><a href="rdp__event_8c.html#a393d4ec6673f6a9c2b71849c109facef">remmina_rdp_event_on_unmap</a></div><div class="ttdeci">gboolean remmina_rdp_event_on_unmap(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00074">rdp_event.c:74</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html"><div class="ttname"><a href="structremmina__plugin__rdp__event.html">remmina_plugin_rdp_event</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00190">rdp_plugin.h:190</a></div></div>
<div class="ttc" id="struct___remmina_file_plugin_html"><div class="ttname"><a href="struct___remmina_file_plugin.html">_RemminaFilePlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00100">plugin.h:100</a></div></div>
<div class="ttc" id="rdp__file_8c_html_aa3a9bcd9fdbbf8906d74acf57bd5ab90"><div class="ttname"><a href="rdp__file_8c.html#aa3a9bcd9fdbbf8906d74acf57bd5ab90">remmina_rdp_file_export_test</a></div><div class="ttdeci">gboolean remmina_rdp_file_export_test(RemminaFilePlugin *plugin, RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__file_8c_source.html#l00205">rdp_file.c:205</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_af98d5eac7e9282802ad973f6313034a2"><div class="ttname"><a href="rdp__plugin_8c.html#af98d5eac7e9282802ad973f6313034a2">log_level</a></div><div class="ttdeci">static gpointer log_level[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02648">rdp_plugin.c:2648</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_af98d5eac7e9282802ad973f6313034a2"><div class="ttname"><a href="rdp__plugin_8c.html#af98d5eac7e9282802ad973f6313034a2">log_level</a></div><div class="ttdeci">static gpointer log_level[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02679">rdp_plugin.c:2679</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a2919b48fd95b772b590b430a03ecb98f"><div class="ttname"><a href="struct___remmina_plugin_service.html#a2919b48fd95b772b590b430a03ecb98f">_RemminaPluginService::file_get_user_datadir</a></div><div class="ttdeci">gchar *(* file_get_user_datadir)(void)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00214">plugin.h:214</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a9f14eee602089f6ff152e1c93c44c3e9"><div class="ttname"><a href="rdp__plugin_8c.html#a9f14eee602089f6ff152e1c93c44c3e9">rf_auto_reconnect</a></div><div class="ttdeci">static BOOL rf_auto_reconnect(rfContext *rfi)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00397">rdp_plugin.c:397</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a9f14eee602089f6ff152e1c93c44c3e9"><div class="ttname"><a href="rdp__plugin_8c.html#a9f14eee602089f6ff152e1c93c44c3e9">rf_auto_reconnect</a></div><div class="ttdeci">static BOOL rf_auto_reconnect(rfContext *rfi)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00398">rdp_plugin.c:398</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7a899b766953e73fd8aa148a9d8f28434b"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a899b766953e73fd8aa148a9d8f28434b">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_DATA_REQUEST</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00185">rdp_plugin.h:185</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac">REMMINA_PLUGIN_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00049">plugin.h:49</a></div></div>
@@ -131,32 +131,33 @@ $(document).ready(function(){initNavTree('rdp__plugin_8c_source.html','');});
<div class="ttc" id="structremmina__plugin__rdp__ui__object_html"><div class="ttname"><a href="structremmina__plugin__rdp__ui__object.html">remmina_plugin_rdp_ui_object</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00265">rdp_plugin.h:265</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a36b55faeba78528ac9708dfa66667e20"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20">_RemminaProtocolFeature::id</a></div><div class="ttdeci">gint id</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00074">types.h:74</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a18f77c3f0788ca8df08ebc80c72b553f"><div class="ttname"><a href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a></div><div class="ttdeci">static BOOL gfx_h264_available</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00113">rdp_plugin.c:113</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a18f77c3f0788ca8df08ebc80c72b553f"><div class="ttname"><a href="rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f">gfx_h264_available</a></div><div class="ttdeci">static BOOL gfx_h264_available</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00114">rdp_plugin.c:114</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00053">types.h:53</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7a6b5a1dbb05d7f63d451b84ea5ec85c03"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a6b5a1dbb05d7f63d451b84ea5ec85c03">REMMINA_RDP_EVENT_DISCONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00187">rdp_plugin.h:187</a></div></div>
<div class="ttc" id="rdp__settings_8c_html_a5f05047cf10611ffb7a23a248650cb4c"><div class="ttname"><a href="rdp__settings_8c.html#a5f05047cf10611ffb7a23a248650cb4c">remmina_rdp_settings_get_orientation_scale_prefs</a></div><div class="ttdeci">void remmina_rdp_settings_get_orientation_scale_prefs(int *desktopOrientation, int *desktopScaleFactor, int *deviceScaleFactor)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__settings_8c_source.html#l00707">rdp_settings.c:707</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_a1e2313a63a9cfd208ab722cc1e0ee072aa5f6f338ffaa4bed53b225cf54b50000"><div class="ttname"><a href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072aa5f6f338ffaa4bed53b225cf54b50000">REMMINA_RDP_UI_EVENT</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00238">rdp_plugin.h:238</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a0291f2233b3d82a3f1d521bfc1fabd43"><div class="ttname"><a href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a></div><div class="ttdeci">static gboolean remmina_rdp_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02518">rdp_plugin.c:2518</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a23cb647672c113276cbf86689f2f9054"><div class="ttname"><a href="rdp__plugin_8c.html#a23cb647672c113276cbf86689f2f9054">remmina_rdp_verify_certificate_ex</a></div><div class="ttdeci">static DWORD remmina_rdp_verify_certificate_ex(freerdp *instance, const char *host, UINT16 port, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, DWORD flags)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00910">rdp_plugin.c:910</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a0291f2233b3d82a3f1d521bfc1fabd43"><div class="ttname"><a href="rdp__plugin_8c.html#a0291f2233b3d82a3f1d521bfc1fabd43">remmina_rdp_query_feature</a></div><div class="ttdeci">static gboolean remmina_rdp_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02549">rdp_plugin.c:2549</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a23cb647672c113276cbf86689f2f9054"><div class="ttname"><a href="rdp__plugin_8c.html#a23cb647672c113276cbf86689f2f9054">remmina_rdp_verify_certificate_ex</a></div><div class="ttdeci">static DWORD remmina_rdp_verify_certificate_ex(freerdp *instance, const char *host, UINT16 port, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, DWORD flags)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00911">rdp_plugin.c:911</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="plugin_8h_html"><div class="ttname"><a href="plugin_8h.html">plugin.h</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_a70cc17b1d3603d036f962a0ae8496b35ad2dd5f6251de0ac7afe2f962c829aa48"><div class="ttname"><a href="rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35ad2dd5f6251de0ac7afe2f962c829aa48">REMMINA_RDP_UI_EVENT_DESTROY_CAIRO_SURFACE</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00258">rdp_plugin.h:258</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ae179a744d3cb61fe894c2dc0d278da71"><div class="ttname"><a href="rdp__plugin_8c.html#ae179a744d3cb61fe894c2dc0d278da71">microphone_tooltip</a></div><div class="ttdeci">static gchar microphone_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02736">rdp_plugin.c:2736</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ae179a744d3cb61fe894c2dc0d278da71"><div class="ttname"><a href="rdp__plugin_8c.html#ae179a744d3cb61fe894c2dc0d278da71">microphone_tooltip</a></div><div class="ttdeci">static gchar microphone_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02767">rdp_plugin.c:2767</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_aeaf95501d1d2ce27589cfdf69511009c"><div class="ttname"><a href="struct___remmina_plugin_service.html#aeaf95501d1d2ce27589cfdf69511009c">_RemminaPluginService::protocol_plugin_init_certificate</a></div><div class="ttdeci">gint(* protocol_plugin_init_certificate)(RemminaProtocolWidget *gp, const gchar *subject, const gchar *issuer, const gchar *fingerprint)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00192">plugin.h:192</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a992a905d014d83a8de736ffbd85fe901"><div class="ttname"><a href="rdp__plugin_8c.html#a992a905d014d83a8de736ffbd85fe901">rf_desktop_resize</a></div><div class="ttdeci">static BOOL rf_desktop_resize(rdpContext *context)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00576">rdp_plugin.c:576</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a3b64c6967b403e36734d10f2a3d6c17f"><div class="ttname"><a href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f">remmina_rdp_CommandLineParseCommaSeparatedValues</a></div><div class="ttdeci">static CLPARAM ** remmina_rdp_CommandLineParseCommaSeparatedValues(const char *list, size_t *count)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00201">rdp_plugin.c:201</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a992a905d014d83a8de736ffbd85fe901"><div class="ttname"><a href="rdp__plugin_8c.html#a992a905d014d83a8de736ffbd85fe901">rf_desktop_resize</a></div><div class="ttdeci">static BOOL rf_desktop_resize(rdpContext *context)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00577">rdp_plugin.c:577</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a3b64c6967b403e36734d10f2a3d6c17f"><div class="ttname"><a href="rdp__plugin_8c.html#a3b64c6967b403e36734d10f2a3d6c17f">remmina_rdp_CommandLineParseCommaSeparatedValues</a></div><div class="ttdeci">static CLPARAM ** remmina_rdp_CommandLineParseCommaSeparatedValues(const char *list, size_t *count)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00202">rdp_plugin.c:202</a></div></div>
<div class="ttc" id="rdp__graphics_8c_html_a95732c40c35499f3440715b6526279b1"><div class="ttname"><a href="rdp__graphics_8c.html#a95732c40c35499f3440715b6526279b1">rf_register_graphics</a></div><div class="ttdeci">void rf_register_graphics(rdpGraphics *graphics)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__graphics_8c_source.html#l00381">rdp_graphics.c:381</a></div></div>
<div class="ttc" id="structregion_html_a585e1a437e6e8f8a80785aec2f2762c8"><div class="ttname"><a href="structregion.html#a585e1a437e6e8f8a80785aec2f2762c8">region::h</a></div><div class="ttdeci">gint h</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00262">rdp_plugin.h:262</a></div></div>
<div class="ttc" id="rdp__settings_8c_html_acf37368f3376add8547723d13443cccb"><div class="ttname"><a href="rdp__settings_8c.html#acf37368f3376add8547723d13443cccb">remmina_rdp_settings_init</a></div><div class="ttdeci">void remmina_rdp_settings_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__settings_8c_source.html#l00057">rdp_settings.c:57</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_af33e88ae9c13745eb6d36f36418e3676"><div class="ttname"><a href="rdp__plugin_8c.html#af33e88ae9c13745eb6d36f36418e3676">remmina_rdp_authenticate</a></div><div class="ttdeci">static BOOL remmina_rdp_authenticate(freerdp *instance, char **username, char **password, char **domain)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00771">rdp_plugin.c:771</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a6aa88468d17f574532ca959f554a70c5"><div class="ttname"><a href="rdp__plugin_8c.html#a6aa88468d17f574532ca959f554a70c5">complete_cleanup_on_main_thread</a></div><div class="ttdeci">static gboolean complete_cleanup_on_main_thread(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02335">rdp_plugin.c:2335</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a12e0199d082d510648cb27168486f4e0"><div class="ttname"><a href="rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0">remmina_rdp_main</a></div><div class="ttdeci">static gboolean remmina_rdp_main(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01342">rdp_plugin.c:1342</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_af33e88ae9c13745eb6d36f36418e3676"><div class="ttname"><a href="rdp__plugin_8c.html#af33e88ae9c13745eb6d36f36418e3676">remmina_rdp_authenticate</a></div><div class="ttdeci">static BOOL remmina_rdp_authenticate(freerdp *instance, char **username, char **password, char **domain)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00772">rdp_plugin.c:772</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a6aa88468d17f574532ca959f554a70c5"><div class="ttname"><a href="rdp__plugin_8c.html#a6aa88468d17f574532ca959f554a70c5">complete_cleanup_on_main_thread</a></div><div class="ttdeci">static gboolean complete_cleanup_on_main_thread(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02366">rdp_plugin.c:2366</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a12e0199d082d510648cb27168486f4e0"><div class="ttname"><a href="rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0">remmina_rdp_main</a></div><div class="ttdeci">static gboolean remmina_rdp_main(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01343">rdp_plugin.c:1343</a></div></div>
<div class="ttc" id="rdp__cliprdr_8c_html_ac3300142e3c2f416896948681ecd45f3"><div class="ttname"><a href="rdp__cliprdr_8c.html#ac3300142e3c2f416896948681ecd45f3">remmina_rdp_clipboard_init</a></div><div class="ttdeci">void remmina_rdp_clipboard_init(rfContext *rfi)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__cliprdr_8c_source.html#l00934">rdp_cliprdr.c:934</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ad47177412ada547f7cd6cbb9dfcf0f3f"><div class="ttname"><a href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_rdp_advanced_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02840">rdp_plugin.c:2840</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ad47177412ada547f7cd6cbb9dfcf0f3f"><div class="ttname"><a href="rdp__plugin_8c.html#ad47177412ada547f7cd6cbb9dfcf0f3f">remmina_rdp_advanced_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_rdp_advanced_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02871">rdp_plugin.c:2871</a></div></div>
<div class="ttc" id="structrf__context_html_a05f37c213b04dfb9ae9b38c12bcdf7e3"><div class="ttname"><a href="structrf__context.html#a05f37c213b04dfb9ae9b38c12bcdf7e3">rf_context::protocol_widget</a></div><div class="ttdeci">RemminaProtocolWidget * protocol_widget</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00323">rdp_plugin.h:323</a></div></div>
<div class="ttc" id="structrf__context_html_a4c35800dba8da687f7f56e3bb7a23413"><div class="ttname"><a href="structrf__context.html#a4c35800dba8da687f7f56e3bb7a23413">rf_context::reconnect_nattempt</a></div><div class="ttdeci">int reconnect_nattempt</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00352">rdp_plugin.h:352</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a934b92c7b33aa57bcafad590031bdcbe"><div class="ttname"><a href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a></div><div class="ttdeci">static gpointer network_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02672">rdp_plugin.c:2672</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a934b92c7b33aa57bcafad590031bdcbe"><div class="ttname"><a href="rdp__plugin_8c.html#a934b92c7b33aa57bcafad590031bdcbe">network_list</a></div><div class="ttdeci">static gpointer network_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02703">rdp_plugin.c:2703</a></div></div>
<div class="ttc" id="rdp__channels_8c_html_ac969423bc7cde10268f1d2870a5e6130"><div class="ttname"><a href="rdp__channels_8c.html#ac969423bc7cde10268f1d2870a5e6130">remmina_rdp_OnChannelConnectedEventHandler</a></div><div class="ttdeci">void remmina_rdp_OnChannelConnectedEventHandler(void *context, ChannelConnectedEventArgs *e)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__channels_8c_source.html#l00046">rdp_channels.c:46</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4">REMMINA_PROTOCOL_FEATURE_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00047">types.h:47</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a2d6704aa58ecc18ecc178ea418addd87"><div class="ttname"><a href="struct___remmina_plugin_service.html#a2d6704aa58ecc18ecc178ea418addd87">_RemminaPluginService::protocol_plugin_send_keys_signals</a></div><div class="ttdeci">void(* protocol_plugin_send_keys_signals)(GtkWidget *widget, const guint *keyvals, int length, GdkEventType action)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00212">plugin.h:212</a></div></div>
@@ -164,11 +165,11 @@ $(document).ready(function(){initNavTree('rdp__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_protocol_plugin_html"><div class="ttname"><a href="struct___remmina_protocol_plugin.html">_RemminaProtocolPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00065">plugin.h:65</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_adf255b7ceaec6a51fc9269cf824a02ce"><div class="ttname"><a href="struct___remmina_plugin_service.html#adf255b7ceaec6a51fc9269cf824a02ce">_RemminaPluginService::protocol_plugin_get_width</a></div><div class="ttdeci">gint(* protocol_plugin_get_width)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00168">plugin.h:168</a></div></div>
<div class="ttc" id="rdp__file_8h_html"><div class="ttname"><a href="rdp__file_8h.html">rdp_file.h</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a6dd204e4f7a63fdcdfb6cd3066cbf309"><div class="ttname"><a href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a></div><div class="ttdeci">static void remmina_rdp_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02392">rdp_plugin.c:2392</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ae0449ecd9477c0361ae0d3ca928d8017"><div class="ttname"><a href="rdp__plugin_8c.html#ae0449ecd9477c0361ae0d3ca928d8017">remmina_get_rdp_kbd_remap</a></div><div class="ttdeci">static gchar * remmina_get_rdp_kbd_remap(const gchar *keymap)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01314">rdp_plugin.c:1314</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a6dd204e4f7a63fdcdfb6cd3066cbf309"><div class="ttname"><a href="rdp__plugin_8c.html#a6dd204e4f7a63fdcdfb6cd3066cbf309">remmina_rdp_init</a></div><div class="ttdeci">static void remmina_rdp_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02423">rdp_plugin.c:2423</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ae0449ecd9477c0361ae0d3ca928d8017"><div class="ttname"><a href="rdp__plugin_8c.html#ae0449ecd9477c0361ae0d3ca928d8017">remmina_get_rdp_kbd_remap</a></div><div class="ttdeci">static gchar * remmina_get_rdp_kbd_remap(const gchar *keymap)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01315">rdp_plugin.c:1315</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a6fdfd3063906f49157225f536537bb0f"><div class="ttname"><a href="struct___remmina_plugin_service.html#a6fdfd3063906f49157225f536537bb0f">_RemminaPluginService::get_server_port</a></div><div class="ttdeci">void(* get_server_port)(const gchar *server, gint defaultport, gchar **host, gint *port)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00249">plugin.h:249</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a0c7eab256e1b1fdf84be44e28cddc3de"><div class="ttname"><a href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">_RemminaPluginService::file_get_int</a></div><div class="ttdeci">gint(* file_get_int)(RemminaFile *remminafile, const gchar *setting, gint default_value)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00222">plugin.h:222</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ab9e7535ac53b25e8923a3b9fd1622046"><div class="ttname"><a href="rdp__plugin_8c.html#ab9e7535ac53b25e8923a3b9fd1622046">remmina_rdp_post_disconnect</a></div><div class="ttdeci">static void remmina_rdp_post_disconnect(freerdp *instance)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00974">rdp_plugin.c:974</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ab9e7535ac53b25e8923a3b9fd1622046"><div class="ttname"><a href="rdp__plugin_8c.html#ab9e7535ac53b25e8923a3b9fd1622046">remmina_rdp_post_disconnect</a></div><div class="ttdeci">static void remmina_rdp_post_disconnect(freerdp *instance)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00975">rdp_plugin.c:975</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7a2e49b2022527a7f87ba0115e644d16d6"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a2e49b2022527a7f87ba0115e644d16d6">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_DATA_RESPONSE</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00184">rdp_plugin.h:184</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00049">types.h:49</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_a9274a9d62e527ca25683af512505242e"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">_RemminaPluginScreenshotData::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00088">types.h:88</a></div></div>
@@ -177,54 +178,54 @@ $(document).ready(function(){initNavTree('rdp__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_plugin_service_html_af45af14b2b083a7093f36b8cafda1cee"><div class="ttname"><a href="struct___remmina_plugin_service.html#af45af14b2b083a7093f36b8cafda1cee">_RemminaPluginService::protocol_plugin_changed_certificate</a></div><div class="ttdeci">gint(* protocol_plugin_changed_certificate)(RemminaProtocolWidget *gp, const gchar *subject, const gchar *issuer, const gchar *new_fingerprint, const gchar *old_fingerprint)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00193">plugin.h:193</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00048">types.h:48</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00051">types.h:51</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a1d631ea2efdaff13c9f372fe487d5e4c"><div class="ttname"><a href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a></div><div class="ttdeci">static CLPARAM ** remmina_rdp_CommandLineParseCommaSeparatedValuesEx(const char *name, const char *list, size_t *count)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00122">rdp_plugin.c:122</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a6910d98a00cac88fb257d9bb2d080243"><div class="ttname"><a href="rdp__plugin_8c.html#a6910d98a00cac88fb257d9bb2d080243">clientbuild_tooltip</a></div><div class="ttdeci">static gchar clientbuild_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02728">rdp_plugin.c:2728</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a1d631ea2efdaff13c9f372fe487d5e4c"><div class="ttname"><a href="rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c">remmina_rdp_CommandLineParseCommaSeparatedValuesEx</a></div><div class="ttdeci">static CLPARAM ** remmina_rdp_CommandLineParseCommaSeparatedValuesEx(const char *name, const char *list, size_t *count)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00123">rdp_plugin.c:123</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a6910d98a00cac88fb257d9bb2d080243"><div class="ttname"><a href="rdp__plugin_8c.html#a6910d98a00cac88fb257d9bb2d080243">clientbuild_tooltip</a></div><div class="ttdeci">static gchar clientbuild_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02759">rdp_plugin.c:2759</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html_a84797e0cdf4484432740a8946325f126"><div class="ttname"><a href="structremmina__plugin__rdp__event.html#a84797e0cdf4484432740a8946325f126">remmina_plugin_rdp_event::type</a></div><div class="ttdeci">RemminaPluginRdpEventType type</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00191">rdp_plugin.h:191</a></div></div>
<div class="ttc" id="rdp__graphics_8h_html"><div class="ttname"><a href="rdp__graphics_8h.html">rdp_graphics.h</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_af2b857b2de1af3621f543b810f68b17b"><div class="ttname"><a href="struct___remmina_plugin_service.html#af2b857b2de1af3621f543b810f68b17b">_RemminaPluginService::protocol_plugin_init_get_savepassword</a></div><div class="ttdeci">gboolean(* protocol_plugin_init_get_savepassword)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00197">plugin.h:197</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7a8c8701fc5ef4ff1196c8d088dd146a5b"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a8c8701fc5ef4ff1196c8d088dd146a5b">REMMINA_RDP_EVENT_TYPE_MOUSE</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00182">rdp_plugin.h:182</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_af22c947a2ae21ce29170be003585e06b"><div class="ttname"><a href="rdp__plugin_8c.html#af22c947a2ae21ce29170be003585e06b">rfi_uninit</a></div><div class="ttdeci">static void rfi_uninit(rfContext *rfi)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02305">rdp_plugin.c:2305</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_af22c947a2ae21ce29170be003585e06b"><div class="ttname"><a href="rdp__plugin_8c.html#af22c947a2ae21ce29170be003585e06b">rfi_uninit</a></div><div class="ttdeci">static void rfi_uninit(rfContext *rfi)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02336">rdp_plugin.c:2336</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_aa0f78eb9b36ba248c2e368684903ae44"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">_RemminaPluginScreenshotData::bytesPerPixel</a></div><div class="ttdeci">int bytesPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00086">types.h:86</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a529cc64f67b16f13f0445add690a8df2"><div class="ttname"><a href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">_RemminaPluginService::register_plugin</a></div><div class="ttdeci">gboolean(* register_plugin)(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00166">plugin.h:166</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa682ab42b3f4af3dd93452efdb76b8757">REMMINA_PLUGIN_TYPE_PREF</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00051">plugin.h:51</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7"><div class="ttname"><a href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7">REMMINA_RDP_UI_RECONNECT_PROGRESS</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00234">rdp_plugin.h:234</a></div></div>
<div class="ttc" id="rdp__monitor_8h_html"><div class="ttname"><a href="rdp__monitor_8h.html">rdp_monitor.h</a></div></div>
<div class="ttc" id="structrf__context_html_ada1ddaadc15cc017185d7114cbea4d56"><div class="ttname"><a href="structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56">rf_context::postconnect_error</a></div><div class="ttdeci">enum rf_context::@59 postconnect_error</div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a9f5c241426816e49f95982b9e3d6bddf"><div class="ttname"><a href="rdp__plugin_8c.html#a9f5c241426816e49f95982b9e3d6bddf">remmina_rdp_set_printers</a></div><div class="ttdeci">static int remmina_rdp_set_printers(void *user_data, unsigned flags, cups_dest_t *dest)</div><div class="ttdoc">Callback function used by cupsEnumDests. </div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01150">rdp_plugin.c:1150</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a9f5c241426816e49f95982b9e3d6bddf"><div class="ttname"><a href="rdp__plugin_8c.html#a9f5c241426816e49f95982b9e3d6bddf">remmina_rdp_set_printers</a></div><div class="ttdeci">static int remmina_rdp_set_printers(void *user_data, unsigned flags, cups_dest_t *dest)</div><div class="ttdoc">Callback function used by cupsEnumDests. </div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01151">rdp_plugin.c:1151</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_ab5d115d8f9fc675f2419d38cdd424ce6"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">_RemminaPluginScreenshotData::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00087">types.h:87</a></div></div>
<div class="ttc" id="structrf__context_html_acee2095e72fb2428c498f62e21800026"><div class="ttname"><a href="structrf__context.html#acee2095e72fb2428c498f62e21800026">rf_context::drawing_area</a></div><div class="ttdeci">GtkWidget * drawing_area</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00355">rdp_plugin.h:355</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a36918dbbfad26310cfe3a3aed5f8f5dc"><div class="ttname"><a href="rdp__plugin_8c.html#a36918dbbfad26310cfe3a3aed5f8f5dc">sound_list</a></div><div class="ttdeci">static gpointer sound_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02686">rdp_plugin.c:2686</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a36918dbbfad26310cfe3a3aed5f8f5dc"><div class="ttname"><a href="rdp__plugin_8c.html#a36918dbbfad26310cfe3a3aed5f8f5dc">sound_list</a></div><div class="ttdeci">static gpointer sound_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02717">rdp_plugin.c:2717</a></div></div>
<div class="ttc" id="structrf__context_html_aa13bb4f72f3024d81e9051de4bd65ec0"><div class="ttname"><a href="structrf__context.html#aa13bb4f72f3024d81e9051de4bd65ec0">rf_context::cairo_format</a></div><div class="ttdeci">cairo_format_t cairo_format</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00367">rdp_plugin.h:367</a></div></div>
<div class="ttc" id="rdp__event_8c_html_ab5fe43c1b1b77c39f118d2581942eb81"><div class="ttname"><a href="rdp__event_8c.html#ab5fe43c1b1b77c39f118d2581942eb81">remmina_rdp_event_queue_ui_sync_retint</a></div><div class="ttdeci">int remmina_rdp_event_queue_ui_sync_retint(RemminaProtocolWidget *gp, RemminaPluginRdpUiObject *ui)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l01439">rdp_event.c:1439</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="rdp__event_8c_html_af3a991a02d35fb09c85f2e752a5393ca"><div class="ttname"><a href="rdp__event_8c.html#af3a991a02d35fb09c85f2e752a5393ca">remmina_rdp_event_init</a></div><div class="ttdeci">void remmina_rdp_event_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00888">rdp_event.c:888</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_abfb79da3d96ca4aa219eae9c73b0b53f"><div class="ttname"><a href="struct___remmina_plugin_service.html#abfb79da3d96ca4aa219eae9c73b0b53f">_RemminaPluginService::protocol_plugin_has_error</a></div><div class="ttdeci">gboolean(* protocol_plugin_has_error)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00175">plugin.h:175</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a860dc4e2fc1479ec1cbdcc53236df9e9"><div class="ttname"><a href="struct___remmina_plugin_service.html#a860dc4e2fc1479ec1cbdcc53236df9e9">_RemminaPluginService::pref_get_value</a></div><div class="ttdeci">gchar *(* pref_get_value)(const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00227">plugin.h:227</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ac66bd1c0ceb224f7a65f5b712148a43e"><div class="ttname"><a href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a></div><div class="ttdeci">static const RemminaProtocolFeature remmina_rdp_features[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02904">rdp_plugin.c:2904</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a4d69cf4d703b55b87d1de06493e2a619"><div class="ttname"><a href="rdp__plugin_8c.html#a4d69cf4d703b55b87d1de06493e2a619">remmina_rdpf</a></div><div class="ttdeci">static RemminaFilePlugin remmina_rdpf</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02946">rdp_plugin.c:2946</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a56e5020de11446dbc23f3480e313f208"><div class="ttname"><a href="rdp__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a></div><div class="ttdeci">G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02992">rdp_plugin.c:2992</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a2f9e1bbd16e19411adbd6a423a9b571f"><div class="ttname"><a href="rdp__plugin_8c.html#a2f9e1bbd16e19411adbd6a423a9b571f">security_list</a></div><div class="ttdeci">static gpointer security_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02695">rdp_plugin.c:2695</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a8b9e88d2925be5eee2025f4c3ede1e29"><div class="ttname"><a href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29">rf_process_event_queue</a></div><div class="ttdeci">static BOOL rf_process_event_queue(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00210">rdp_plugin.c:210</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ac66bd1c0ceb224f7a65f5b712148a43e"><div class="ttname"><a href="rdp__plugin_8c.html#ac66bd1c0ceb224f7a65f5b712148a43e">remmina_rdp_features</a></div><div class="ttdeci">static const RemminaProtocolFeature remmina_rdp_features[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02936">rdp_plugin.c:2936</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a4d69cf4d703b55b87d1de06493e2a619"><div class="ttname"><a href="rdp__plugin_8c.html#a4d69cf4d703b55b87d1de06493e2a619">remmina_rdpf</a></div><div class="ttdeci">static RemminaFilePlugin remmina_rdpf</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02978">rdp_plugin.c:2978</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a56e5020de11446dbc23f3480e313f208"><div class="ttname"><a href="rdp__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a></div><div class="ttdeci">G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l03024">rdp_plugin.c:3024</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a2f9e1bbd16e19411adbd6a423a9b571f"><div class="ttname"><a href="rdp__plugin_8c.html#a2f9e1bbd16e19411adbd6a423a9b571f">security_list</a></div><div class="ttdeci">static gpointer security_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02726">rdp_plugin.c:2726</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a8b9e88d2925be5eee2025f4c3ede1e29"><div class="ttname"><a href="rdp__plugin_8c.html#a8b9e88d2925be5eee2025f4c3ede1e29">rf_process_event_queue</a></div><div class="ttdeci">static BOOL rf_process_event_queue(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00211">rdp_plugin.c:211</a></div></div>
<div class="ttc" id="rdp__event_8c_html_ae445fd0a84c7c9414a177a69c86cf325"><div class="ttname"><a href="rdp__event_8c.html#ae445fd0a84c7c9414a177a69c86cf325">remmina_rdp_event_queue_ui_async</a></div><div class="ttdeci">void remmina_rdp_event_queue_ui_async(RemminaProtocolWidget *gp, RemminaPluginRdpUiObject *ui)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l01433">rdp_event.c:1433</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_addffb9c5555027536804d8ef47b65f3b"><div class="ttname"><a href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a></div><div class="ttdeci">static void remmina_rdp_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02580">rdp_plugin.c:2580</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_addffb9c5555027536804d8ef47b65f3b"><div class="ttname"><a href="rdp__plugin_8c.html#addffb9c5555027536804d8ef47b65f3b">remmina_rdp_keystroke</a></div><div class="ttdeci">static void remmina_rdp_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02611">rdp_plugin.c:2611</a></div></div>
<div class="ttc" id="structrf__context_html_adf05df0bd656d71f2a95c39ea96b7c6e"><div class="ttname"><a href="structrf__context.html#adf05df0bd656d71f2a95c39ea96b7c6e">rf_context::stop_reconnecting_requested</a></div><div class="ttdeci">gboolean stop_reconnecting_requested</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00345">rdp_plugin.h:345</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html_a18cb50afaa8b9df1759f87899892fdb6"><div class="ttname"><a href="structremmina__plugin__rdp__event.html#a18cb50afaa8b9df1759f87899892fdb6">remmina_plugin_rdp_event::key_event</a></div><div class="ttdeci">struct remmina_plugin_rdp_event::@42::@44 key_event</div></div>
<div class="ttc" id="rdp__file_8c_html_a5465339535714b34c0f60a4ca386e335"><div class="ttname"><a href="rdp__file_8c.html#a5465339535714b34c0f60a4ca386e335">remmina_rdp_file_import_test</a></div><div class="ttdeci">gboolean remmina_rdp_file_import_test(RemminaFilePlugin *plugin, const gchar *from_file)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__file_8c_source.html#l00041">rdp_file.c:41</a></div></div>
<div class="ttc" id="rdp__file_8c_html_a0141f87575bf2b97219541b419ed467e"><div class="ttname"><a href="rdp__file_8c.html#a0141f87575bf2b97219541b419ed467e">remmina_rdp_file_export</a></div><div class="ttdeci">gboolean remmina_rdp_file_export(RemminaFilePlugin *plugin, RemminaFile *remminafile, const gchar *to_file)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__file_8c_source.html#l00282">rdp_file.c:282</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a7d6c92b318e43b96efddbcaa9400c1f1"><div class="ttname"><a href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a></div><div class="ttdeci">static gpointer colordepth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02630">rdp_plugin.c:2630</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a7d6c92b318e43b96efddbcaa9400c1f1"><div class="ttname"><a href="rdp__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a></div><div class="ttdeci">static gpointer colordepth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02661">rdp_plugin.c:2661</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html_a72cd3fa2cc46eb03de7f68d63b2646b2"><div class="ttname"><a href="structremmina__plugin__rdp__event.html#a72cd3fa2cc46eb03de7f68d63b2646b2">remmina_plugin_rdp_event::clipboard_formatlist</a></div><div class="ttdeci">struct remmina_plugin_rdp_event::@42::@46 clipboard_formatlist</div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a96a6da204741a7275dd7001e041cc86d"><div class="ttname"><a href="rdp__plugin_8c.html#a96a6da204741a7275dd7001e041cc86d">audio_tooltip</a></div><div class="ttdeci">static gchar audio_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02745">rdp_plugin.c:2745</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a96a6da204741a7275dd7001e041cc86d"><div class="ttname"><a href="rdp__plugin_8c.html#a96a6da204741a7275dd7001e041cc86d">audio_tooltip</a></div><div class="ttdeci">static gchar audio_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02776">rdp_plugin.c:2776</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_aa159850f20499e5bc1067f533d2fa820"><div class="ttname"><a href="struct___remmina_plugin_service.html#aa159850f20499e5bc1067f533d2fa820">_RemminaPluginService::protocol_plugin_get_height</a></div><div class="ttdeci">gint(* protocol_plugin_get_height)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00170">plugin.h:170</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a9b4cfe0a97a34260e58784feef693704"><div class="ttname"><a href="struct___remmina_plugin_service.html#a9b4cfe0a97a34260e58784feef693704">_RemminaPluginService::protocol_plugin_init_auth</a></div><div class="ttdeci">gint(* protocol_plugin_init_auth)(RemminaProtocolWidget *gp, RemminaMessagePanelFlags pflags, const gchar *title, const gchar *default_username, const gchar *default_password, const gchar *default_domain, const gchar *password_prompt)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00191">plugin.h:191</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a16227448ff442f2faacb0156f415d7de"><div class="ttname"><a href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a></div><div class="ttdeci">static gchar monitorids_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02771">rdp_plugin.c:2771</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a16227448ff442f2faacb0156f415d7de"><div class="ttname"><a href="rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de">monitorids_tooltip</a></div><div class="ttdeci">static gchar monitorids_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02802">rdp_plugin.c:2802</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_acc352444c31929a1ef7aee2a0e37827d"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">_RemminaPluginScreenshotData::bitsPerPixel</a></div><div class="ttdeci">int bitsPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00085">types.h:85</a></div></div>
<div class="ttc" id="rdp__event_8c_html_ac7c8d626470553c1659312697811dbfe"><div class="ttname"><a href="rdp__event_8c.html#ac7c8d626470553c1659312697811dbfe">remmina_rdp_event_send_delayed_monitor_layout</a></div><div class="ttdeci">void remmina_rdp_event_send_delayed_monitor_layout(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00483">rdp_event.c:483</a></div></div>
<div class="ttc" id="structrf__context_html_a5d119b1f108fe84c74e6484d48c2a565"><div class="ttname"><a href="structrf__context.html#a5d119b1f108fe84c74e6484d48c2a565">rf_context::event_queue</a></div><div class="ttdeci">GAsyncQueue * event_queue</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00380">rdp_plugin.h:380</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_adb2d2f801618ad1e5ff14b4ebf2a9eb9"><div class="ttname"><a href="rdp__plugin_8c.html#adb2d2f801618ad1e5ff14b4ebf2a9eb9">remmina_rdp_main_loop</a></div><div class="ttdeci">static void remmina_rdp_main_loop(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00989">rdp_plugin.c:989</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a0d029a3287dd4abf1e7c602e3c556cde"><div class="ttname"><a href="rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde">rf_play_sound</a></div><div class="ttdeci">static BOOL rf_play_sound(rdpContext *context, const PLAY_SOUND_UPDATE *play_sound)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00614">rdp_plugin.c:614</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_adb2d2f801618ad1e5ff14b4ebf2a9eb9"><div class="ttname"><a href="rdp__plugin_8c.html#adb2d2f801618ad1e5ff14b4ebf2a9eb9">remmina_rdp_main_loop</a></div><div class="ttdeci">static void remmina_rdp_main_loop(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00990">rdp_plugin.c:990</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a0d029a3287dd4abf1e7c602e3c556cde"><div class="ttname"><a href="rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde">rf_play_sound</a></div><div class="ttdeci">static BOOL rf_play_sound(rdpContext *context, const PLAY_SOUND_UPDATE *play_sound)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00615">rdp_plugin.c:615</a></div></div>
<div class="ttc" id="structregion_html_ad258e7b02e819b46656294de5e4bd8ad"><div class="ttname"><a href="structregion.html#ad258e7b02e819b46656294de5e4bd8ad">region::x</a></div><div class="ttdeci">gint x</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00262">rdp_plugin.h:262</a></div></div>
<div class="ttc" id="structrf__context_html_a72d2a3d60347327237692947df93aea7"><div class="ttname"><a href="structrf__context.html#a72d2a3d60347327237692947df93aea7">rf_context::clipboard</a></div><div class="ttdeci">rfClipboard clipboard</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00384">rdp_plugin.h:384</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a2b75137f9d7739c0d7881ee16e2aabfa"><div class="ttname"><a href="struct___remmina_plugin_service.html#a2b75137f9d7739c0d7881ee16e2aabfa">_RemminaPluginService::get_profile_remote_height</a></div><div class="ttdeci">gint(* get_profile_remote_height)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00253">plugin.h:253</a></div></div>
@@ -232,77 +233,77 @@ $(document).ready(function(){initNavTree('rdp__plugin_8c_source.html','');});
<div class="ttc" id="rdp__event_8c_html_a65eef99dc99f77be815a5da804ed94fc"><div class="ttname"><a href="rdp__event_8c.html#a65eef99dc99f77be815a5da804ed94fc">remmina_rdp_event_uninit</a></div><div class="ttdeci">void remmina_rdp_event_uninit(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l01020">rdp_event.c:1020</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7a1973a1fe40811ab9a21bc77c23c42a05"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a1973a1fe40811ab9a21bc77c23c42a05">REMMINA_RDP_EVENT_TYPE_SEND_MONITOR_LAYOUT</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00186">rdp_plugin.h:186</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7ab15f261f1918633711921198fea0029f"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7ab15f261f1918633711921198fea0029f">REMMINA_RDP_EVENT_TYPE_SCANCODE_UNICODE</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00181">rdp_plugin.h:181</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00102">types.h:102</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a6d333b2bc5bfea17c71159ca5064ba84"><div class="ttname"><a href="rdp__plugin_8c.html#a6d333b2bc5bfea17c71159ca5064ba84">remmina_rdp_verify_changed_certificate_ex</a></div><div class="ttdeci">static DWORD remmina_rdp_verify_changed_certificate_ex(freerdp *instance, const char *host, UINT16 port, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, const char *old_subject, const char *old_issuer, const char *old_fingerprint, DWORD flags)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00952">rdp_plugin.c:952</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a6d333b2bc5bfea17c71159ca5064ba84"><div class="ttname"><a href="rdp__plugin_8c.html#a6d333b2bc5bfea17c71159ca5064ba84">remmina_rdp_verify_changed_certificate_ex</a></div><div class="ttdeci">static DWORD remmina_rdp_verify_changed_certificate_ex(freerdp *instance, const char *host, UINT16 port, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, const char *old_subject, const char *old_issuer, const char *old_fingerprint, DWORD flags)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00953">rdp_plugin.c:953</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_add5c06ac9c7a5fb3b3459731ffc8e964"><div class="ttname"><a href="struct___remmina_plugin_service.html#add5c06ac9c7a5fb3b3459731ffc8e964">_RemminaPluginService::pref_keymap_get_table</a></div><div class="ttdeci">guint *(* pref_keymap_get_table)(const gchar *keymap)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00232">plugin.h:232</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a734f491f20072acdcbebb41e36bafe2f"><div class="ttname"><a href="struct___remmina_plugin_service.html#a734f491f20072acdcbebb41e36bafe2f">_RemminaPluginService::protocol_plugin_desktop_resize</a></div><div class="ttdeci">void(* protocol_plugin_desktop_resize)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00190">plugin.h:190</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ac8d1ec82167ad20b7634ed545d4badbc"><div class="ttname"><a href="rdp__plugin_8c.html#ac8d1ec82167ad20b7634ed545d4badbc">remmina_rdp_post_connect</a></div><div class="ttdeci">static BOOL remmina_rdp_post_connect(freerdp *instance)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00696">rdp_plugin.c:696</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a124b97e9be7ba4047d910a1048a4507b"><div class="ttname"><a href="rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b">usb_tooltip</a></div><div class="ttdeci">static gchar usb_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02755">rdp_plugin.c:2755</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ac8d1ec82167ad20b7634ed545d4badbc"><div class="ttname"><a href="rdp__plugin_8c.html#ac8d1ec82167ad20b7634ed545d4badbc">remmina_rdp_post_connect</a></div><div class="ttdeci">static BOOL remmina_rdp_post_connect(freerdp *instance)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00697">rdp_plugin.c:697</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a124b97e9be7ba4047d910a1048a4507b"><div class="ttname"><a href="rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b">usb_tooltip</a></div><div class="ttdeci">static gchar usb_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02786">rdp_plugin.c:2786</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html_a008a5e7caebab7b0a5d4f6a48b4c63f6"><div class="ttname"><a href="structremmina__plugin__rdp__event.html#a008a5e7caebab7b0a5d4f6a48b4c63f6">remmina_plugin_rdp_event::clipboard_formatdatarequest</a></div><div class="ttdeci">struct remmina_plugin_rdp_event::@42::@48 clipboard_formatdatarequest</div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
<div class="ttc" id="rdp__settings_8c_html_a55dda4fb09dc13dafba65becda89e194"><div class="ttname"><a href="rdp__settings_8c.html#a55dda4fb09dc13dafba65becda89e194">remmina_rdp_settings_new</a></div><div class="ttdeci">GtkWidget * remmina_rdp_settings_new(RemminaPrefPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__settings_8c_source.html#l00696">rdp_settings.c:696</a></div></div>
<div class="ttc" id="struct___remmina_pref_plugin_html"><div class="ttname"><a href="struct___remmina_pref_plugin.html">_RemminaPrefPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00124">plugin.h:124</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_af43b1397163aab939f9e88ed201d52ba"><div class="ttname"><a href="rdp__plugin_8c.html#af43b1397163aab939f9e88ed201d52ba">remmina_rdps</a></div><div class="ttdeci">static RemminaPrefPlugin remmina_rdps</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02961">rdp_plugin.c:2961</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_af43b1397163aab939f9e88ed201d52ba"><div class="ttname"><a href="rdp__plugin_8c.html#af43b1397163aab939f9e88ed201d52ba">remmina_rdps</a></div><div class="ttdeci">static RemminaPrefPlugin remmina_rdps</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02993">rdp_plugin.c:2993</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
<div class="ttc" id="structrf__context_html_a9d28c775fe1ee90ad48941d753564a76"><div class="ttname"><a href="structrf__context.html#a9d28c775fe1ee90ad48941d753564a76">rf_context::srcBpp</a></div><div class="ttdeci">gint srcBpp</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00363">rdp_plugin.h:363</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ac892dd297fae87868752a1f86e07937d"><div class="ttname"><a href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">_RemminaPluginService::protocol_plugin_init_get_username</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_username)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00194">plugin.h:194</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a1beaae641f40fc4fbcafe84846a2eb76"><div class="ttname"><a href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a></div><div class="ttdeci">static gboolean remmina_rdp_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02476">rdp_plugin.c:2476</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a1beaae641f40fc4fbcafe84846a2eb76"><div class="ttname"><a href="rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76">remmina_rdp_close_connection</a></div><div class="ttdeci">static gboolean remmina_rdp_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02507">rdp_plugin.c:2507</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_a1e2313a63a9cfd208ab722cc1e0ee072ad3ced07ddeda0100b59ca9c8af47bbe9"><div class="ttname"><a href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072ad3ced07ddeda0100b59ca9c8af47bbe9">REMMINA_RDP_UI_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00233">rdp_plugin.h:233</a></div></div>
<div class="ttc" id="rdp__cliprdr_8c_html_a4da95b96bf2c86b8f4cc63dcafdd1365"><div class="ttname"><a href="rdp__cliprdr_8c.html#a4da95b96bf2c86b8f4cc63dcafdd1365">remmina_rdp_clipboard_free</a></div><div class="ttdeci">void remmina_rdp_clipboard_free(rfContext *rfi)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__cliprdr_8c_source.html#l00939">rdp_cliprdr.c:939</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_afe3c32a421cd5dcc735b99318ff8844a"><div class="ttname"><a href="struct___remmina_plugin_service.html#afe3c32a421cd5dcc735b99318ff8844a">_RemminaPluginService::get_profile_remote_width</a></div><div class="ttdeci">gint(* get_profile_remote_width)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00252">plugin.h:252</a></div></div>
<div class="ttc" id="structrf__context_html_a3c2ffa55ba97bc70324d61b8cc838e73"><div class="ttname"><a href="structrf__context.html#a3c2ffa55ba97bc70324d61b8cc838e73">rf_context::connected</a></div><div class="ttdeci">gboolean connected</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00343">rdp_plugin.h:343</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ad98eaa3efc0214bc701dc66b5730e174"><div class="ttname"><a href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">_RemminaPluginService::protocol_plugin_init_get_password</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_password)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00195">plugin.h:195</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00050">types.h:50</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00104">types.h:104</a></div></div>
<div class="ttc" id="structrf__context_html_a96c4689f6bc062482536038cb3b24e78"><div class="ttname"><a href="structrf__context.html#a96c4689f6bc062482536038cb3b24e78">rf_context::scale</a></div><div class="ttdeci">RemminaScaleMode scale</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00330">rdp_plugin.h:330</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a2bce72cf8deae18499d422515d3f546c"><div class="ttname"><a href="rdp__plugin_8c.html#a2bce72cf8deae18499d422515d3f546c">rf_keyboard_set_ime_status</a></div><div class="ttdeci">static BOOL rf_keyboard_set_ime_status(rdpContext *context, UINT16 imeId, UINT32 imeState, UINT32 imeConvMode)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00659">rdp_plugin.c:659</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a2bce72cf8deae18499d422515d3f546c"><div class="ttname"><a href="rdp__plugin_8c.html#a2bce72cf8deae18499d422515d3f546c">rf_keyboard_set_ime_status</a></div><div class="ttdeci">static BOOL rf_keyboard_set_ime_status(rdpContext *context, UINT16 imeId, UINT32 imeState, UINT32 imeConvMode)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00660">rdp_plugin.c:660</a></div></div>
<div class="ttc" id="rdp__channels_8c_html_a2d82ea9a38463d03c07271a356ccaec2"><div class="ttname"><a href="rdp__channels_8c.html#a2d82ea9a38463d03c07271a356ccaec2">remmina_rdp_OnChannelDisconnectedEventHandler</a></div><div class="ttdeci">void remmina_rdp_OnChannelDisconnectedEventHandler(void *context, ChannelDisconnectedEventArgs *e)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__channels_8c_source.html#l00086">rdp_channels.c:86</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a2986e5b780a080a8a1e2f8d10ece3ac4"><div class="ttname"><a href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a></div><div class="ttdeci">static char remmina_plugin_rdp_version[256]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02918">rdp_plugin.c:2918</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a2986e5b780a080a8a1e2f8d10ece3ac4"><div class="ttname"><a href="rdp__plugin_8c.html#a2986e5b780a080a8a1e2f8d10ece3ac4">remmina_plugin_rdp_version</a></div><div class="ttdeci">static char remmina_plugin_rdp_version[256]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02950">rdp_plugin.c:2950</a></div></div>
<div class="ttc" id="structrf__context_html_a3a32bbd599b6684a3c41db9281863362"><div class="ttname"><a href="structrf__context.html#a3a32bbd599b6684a3c41db9281863362">rf_context::instance</a></div><div class="ttdeci">freerdp * instance</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00327">rdp_plugin.h:327</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a1b89199f25081137222e72a4be577ea4"><div class="ttname"><a href="rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4">rf_keyboard_set_indicators</a></div><div class="ttdeci">static BOOL rf_keyboard_set_indicators(rdpContext *context, UINT16 led_flags)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00630">rdp_plugin.c:630</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a1b89199f25081137222e72a4be577ea4"><div class="ttname"><a href="rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4">rf_keyboard_set_indicators</a></div><div class="ttdeci">static BOOL rf_keyboard_set_indicators(rdpContext *context, UINT16 led_flags)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00631">rdp_plugin.c:631</a></div></div>
<div class="ttc" id="rdp__settings_8h_html"><div class="ttname"><a href="rdp__settings_8h.html">rdp_settings.h</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a71166233c6c9e4714cbdb0d74ce7c579"><div class="ttname"><a href="rdp__plugin_8c.html#a71166233c6c9e4714cbdb0d74ce7c579">remmina_rdp_gw_authenticate</a></div><div class="ttdeci">static BOOL remmina_rdp_gw_authenticate(freerdp *instance, char **username, char **password, char **domain)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00830">rdp_plugin.c:830</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a71166233c6c9e4714cbdb0d74ce7c579"><div class="ttname"><a href="rdp__plugin_8c.html#a71166233c6c9e4714cbdb0d74ce7c579">remmina_rdp_gw_authenticate</a></div><div class="ttdeci">static BOOL remmina_rdp_gw_authenticate(freerdp *instance, char **username, char **password, char **domain)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00831">rdp_plugin.c:831</a></div></div>
<div class="ttc" id="structrf__context_html_a660a5c5ea7256ab6a6486f3e831a9174"><div class="ttname"><a href="structrf__context.html#a660a5c5ea7256ab6a6486f3e831a9174">rf_context::dispcontext</a></div><div class="ttdeci">DispClientContext * dispcontext</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00335">rdp_plugin.h:335</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a7031208f6cbf262a2e69fe971f248591"><div class="ttname"><a href="rdp__plugin_8c.html#a7031208f6cbf262a2e69fe971f248591">buildconfig_strstr</a></div><div class="ttdeci">static char * buildconfig_strstr(const char *bc, const char *option)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02972">rdp_plugin.c:2972</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a7565748ab340f2e7c66bcb755e006bd5"><div class="ttname"><a href="rdp__plugin_8c.html#a7565748ab340f2e7c66bcb755e006bd5">clientbuild_list</a></div><div class="ttdeci">static gchar clientbuild_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02725">rdp_plugin.c:2725</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a7031208f6cbf262a2e69fe971f248591"><div class="ttname"><a href="rdp__plugin_8c.html#a7031208f6cbf262a2e69fe971f248591">buildconfig_strstr</a></div><div class="ttdeci">static char * buildconfig_strstr(const char *bc, const char *option)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l03004">rdp_plugin.c:3004</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a7565748ab340f2e7c66bcb755e006bd5"><div class="ttname"><a href="rdp__plugin_8c.html#a7565748ab340f2e7c66bcb755e006bd5">clientbuild_list</a></div><div class="ttdeci">static gchar clientbuild_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02756">rdp_plugin.c:2756</a></div></div>
<div class="ttc" id="rdp__channels_8h_html"><div class="ttname"><a href="rdp__channels_8h.html">rdp_channels.h</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a4b10b6decd6ea742b10c7572f2453d9e"><div class="ttname"><a href="rdp__plugin_8c.html#a4b10b6decd6ea742b10c7572f2453d9e">remmina_rdp_verify_certificate</a></div><div class="ttdeci">static DWORD remmina_rdp_verify_certificate(freerdp *instance, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, BOOL host_mismatch) __attribute__((unused))</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00933">rdp_plugin.c:933</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a4b10b6decd6ea742b10c7572f2453d9e"><div class="ttname"><a href="rdp__plugin_8c.html#a4b10b6decd6ea742b10c7572f2453d9e">remmina_rdp_verify_certificate</a></div><div class="ttdeci">static DWORD remmina_rdp_verify_certificate(freerdp *instance, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, BOOL host_mismatch) __attribute__((unused))</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00934">rdp_plugin.c:934</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a64ce0c66bb4cb6ddaee263ce8563f497"><div class="ttname"><a href="rdp__event_8c.html#a64ce0c66bb4cb6ddaee263ce8563f497">remmina_rdp_event_update_scale</a></div><div class="ttdeci">void remmina_rdp_event_update_scale(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l01094">rdp_event.c:1094</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a915615896fa6ad63f6b89e52401a0144"><div class="ttname"><a href="rdp__plugin_8c.html#a915615896fa6ad63f6b89e52401a0144">rf_begin_paint</a></div><div class="ttdeci">static BOOL rf_begin_paint(rdpContext *context)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00514">rdp_plugin.c:514</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a915615896fa6ad63f6b89e52401a0144"><div class="ttname"><a href="rdp__plugin_8c.html#a915615896fa6ad63f6b89e52401a0144">rf_begin_paint</a></div><div class="ttdeci">static BOOL rf_begin_paint(rdpContext *context)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00515">rdp_plugin.c:515</a></div></div>
<div class="ttc" id="structrf__context_html_a28d215e4ddb5decc543c3c6578df5e3d"><div class="ttname"><a href="structrf__context.html#a28d215e4ddb5decc543c3c6578df5e3d">rf_context::settings</a></div><div class="ttdeci">rdpSettings * settings</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00326">rdp_plugin.h:326</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a4880fb57479708bc1cb47bf6b4dcabc3"><div class="ttname"><a href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">_RemminaPluginService::file_set_string</a></div><div class="ttdeci">void(* file_set_string)(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00218">plugin.h:218</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a258d391bcfff1409d27bee0743aec6c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">_RemminaPluginService::protocol_plugin_set_height</a></div><div class="ttdeci">void(* protocol_plugin_set_height)(RemminaProtocolWidget *gp, gint height)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00171">plugin.h:171</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_ab94fa2ca38e70e8c4b168f7e67a24d45"><div class="ttname"><a href="rdp__plugin_8c.html#ab94fa2ca38e70e8c4b168f7e67a24d45">rf_end_paint</a></div><div class="ttdeci">static BOOL rf_end_paint(rdpContext *context)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00529">rdp_plugin.c:529</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a3b62e33da1cb6cfa69c44f565ad53c54"><div class="ttname"><a href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54">remmina_rdp_main_thread</a></div><div class="ttdeci">static gpointer remmina_rdp_main_thread(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02365">rdp_plugin.c:2365</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_ab94fa2ca38e70e8c4b168f7e67a24d45"><div class="ttname"><a href="rdp__plugin_8c.html#ab94fa2ca38e70e8c4b168f7e67a24d45">rf_end_paint</a></div><div class="ttdeci">static BOOL rf_end_paint(rdpContext *context)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00530">rdp_plugin.c:530</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a3b62e33da1cb6cfa69c44f565ad53c54"><div class="ttname"><a href="rdp__plugin_8c.html#a3b62e33da1cb6cfa69c44f565ad53c54">remmina_rdp_main_thread</a></div><div class="ttdeci">static gpointer remmina_rdp_main_thread(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02396">rdp_plugin.c:2396</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a4da10c12b28edc28403766994d6ef29c"><div class="ttname"><a href="rdp__event_8c.html#a4da10c12b28edc28403766994d6ef29c">remmina_rdp_event_unfocus</a></div><div class="ttdeci">void remmina_rdp_event_unfocus(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l01288">rdp_event.c:1288</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a0bc4113554537fd1a9e4c8bb9201e789"><div class="ttname"><a href="rdp__plugin_8c.html#a0bc4113554537fd1a9e4c8bb9201e789">remmina_rdp_pre_connect</a></div><div class="ttdeci">static BOOL remmina_rdp_pre_connect(freerdp *instance)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00671">rdp_plugin.c:671</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a0bc4113554537fd1a9e4c8bb9201e789"><div class="ttname"><a href="rdp__plugin_8c.html#a0bc4113554537fd1a9e4c8bb9201e789">remmina_rdp_pre_connect</a></div><div class="ttdeci">static BOOL remmina_rdp_pre_connect(freerdp *instance)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00672">rdp_plugin.c:672</a></div></div>
<div class="ttc" id="rdp__cliprdr_8h_html"><div class="ttname"><a href="rdp__cliprdr_8h.html">rdp_cliprdr.h</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a32a408f4657dd9778d08923f8942e46a"><div class="ttname"><a href="rdp__plugin_8c.html#a32a408f4657dd9778d08923f8942e46a">remmina_rdp_find_prdriver</a></div><div class="ttdeci">static gchar * remmina_rdp_find_prdriver(char *smap, char *prn)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01075">rdp_plugin.c:1075</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a32a408f4657dd9778d08923f8942e46a"><div class="ttname"><a href="rdp__plugin_8c.html#a32a408f4657dd9778d08923f8942e46a">remmina_rdp_find_prdriver</a></div><div class="ttdeci">static gchar * remmina_rdp_find_prdriver(char *smap, char *prn)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01076">rdp_plugin.c:1076</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7ae248ff32977c650df357c079f9d8b6e2"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7ae248ff32977c650df357c079f9d8b6e2">REMMINA_RDP_EVENT_TYPE_SCANCODE</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00180">rdp_plugin.h:180</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a521e1d4c1a3175d5c56faeed41b069a4"><div class="ttname"><a href="rdp__plugin_8c.html#a521e1d4c1a3175d5c56faeed41b069a4">timeout_tooltip</a></div><div class="ttdeci">static gchar timeout_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02761">rdp_plugin.c:2761</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_af95e15a376e56355da6c52e85d8553af"><div class="ttname"><a href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af">remmina_rdp_tunnel_init</a></div><div class="ttdeci">static gboolean remmina_rdp_tunnel_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00338">rdp_plugin.c:338</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a521e1d4c1a3175d5c56faeed41b069a4"><div class="ttname"><a href="rdp__plugin_8c.html#a521e1d4c1a3175d5c56faeed41b069a4">timeout_tooltip</a></div><div class="ttdeci">static gchar timeout_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02792">rdp_plugin.c:2792</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_af95e15a376e56355da6c52e85d8553af"><div class="ttname"><a href="rdp__plugin_8c.html#af95e15a376e56355da6c52e85d8553af">remmina_rdp_tunnel_init</a></div><div class="ttdeci">static gboolean remmina_rdp_tunnel_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00339">rdp_plugin.c:339</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__ui__object_html_a87d27be6d29a42e284192bad1a6f1a32"><div class="ttname"><a href="structremmina__plugin__rdp__ui__object.html#a87d27be6d29a42e284192bad1a6f1a32">remmina_plugin_rdp_ui_object::event</a></div><div class="ttdeci">struct remmina_plugin_rdp_ui_object::@50::@57 event</div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ae95121f8f944c058d4f0683073f79183"><div class="ttname"><a href="struct___remmina_plugin_service.html#ae95121f8f944c058d4f0683073f79183">_RemminaPluginService::protocol_plugin_start_direct_tunnel</a></div><div class="ttdeci">gchar *(* protocol_plugin_start_direct_tunnel)(RemminaProtocolWidget *gp, gint default_port, gboolean port_plus)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00181">plugin.h:181</a></div></div>
<div class="ttc" id="rdp__monitor_8c_html_aa5969439ce0342765baea33fcf396940"><div class="ttname"><a href="rdp__monitor_8c.html#aa5969439ce0342765baea33fcf396940">remmina_rdp_monitor_get</a></div><div class="ttdeci">void remmina_rdp_monitor_get(rfContext *rfi, gchar **monitorids, guint32 *maxwidth, guint32 *maxheight)</div><div class="ttdoc">Set the MonitorIDs, the maxwidth and maxheight. </div><div class="ttdef"><b>Definition:</b> <a href="rdp__monitor_8c_source.html#l00068">rdp_monitor.c:68</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a2b6601868bc70050a57b1025f10225b1"><div class="ttname"><a href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_rdp_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02810">rdp_plugin.c:2810</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a910327fd7b1f969868a746aeb5578d30"><div class="ttname"><a href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a></div><div class="ttdeci">static gboolean remmina_rdp_get_screenshot(RemminaProtocolWidget *gp, RemminaPluginScreenshotData *rpsd)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02590">rdp_plugin.c:2590</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a2b6601868bc70050a57b1025f10225b1"><div class="ttname"><a href="rdp__plugin_8c.html#a2b6601868bc70050a57b1025f10225b1">remmina_rdp_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_rdp_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02841">rdp_plugin.c:2841</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a910327fd7b1f969868a746aeb5578d30"><div class="ttname"><a href="rdp__plugin_8c.html#a910327fd7b1f969868a746aeb5578d30">remmina_rdp_get_screenshot</a></div><div class="ttdeci">static gboolean remmina_rdp_get_screenshot(RemminaProtocolWidget *gp, RemminaPluginScreenshotData *rpsd)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02621">rdp_plugin.c:2621</a></div></div>
<div class="ttc" id="rdp__event_8c_html_ad446d6471bddba97f8bfcee8c51e4580"><div class="ttname"><a href="rdp__event_8c.html#ad446d6471bddba97f8bfcee8c51e4580">remmina_rdp_event_event_push</a></div><div class="ttdeci">void remmina_rdp_event_event_push(RemminaProtocolWidget *gp, const RemminaPluginRdpEvent *e)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00150">rdp_event.c:150</a></div></div>
<div class="ttc" id="rdp__event_8h_html"><div class="ttname"><a href="rdp__event_8h.html">rdp_event.h</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a673ff4320377c3b440dfd24a796c69fc"><div class="ttname"><a href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">_RemminaPluginService::file_get_string</a></div><div class="ttdeci">const gchar *(* file_get_string)(RemminaFile *remminafile, const gchar *setting)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00219">plugin.h:219</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html">_RemminaPluginScreenshotData</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00083">types.h:83</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a88ab37248af4668b8b8758175347d3a1"><div class="ttname"><a href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a></div><div class="ttdeci">static gchar drive_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02783">rdp_plugin.c:2783</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="rdp__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00111">rdp_plugin.c:111</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a88ab37248af4668b8b8758175347d3a1"><div class="ttname"><a href="rdp__plugin_8c.html#a88ab37248af4668b8b8758175347d3a1">drive_tooltip</a></div><div class="ttdeci">static gchar drive_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02814">rdp_plugin.c:2814</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="rdp__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00112">rdp_plugin.c:112</a></div></div>
<div class="ttc" id="structregion_html"><div class="ttname"><a href="structregion.html">region</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00261">rdp_plugin.h:261</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_a757f692624e3e110eaa5bf0c05ac2a6c"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">_RemminaPluginScreenshotData::buffer</a></div><div class="ttdeci">unsigned char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00084">types.h:84</a></div></div>
<div class="ttc" id="rdp__event_8c_html_a09271b787fc086f05a8a6e7c3282d6aa"><div class="ttname"><a href="rdp__event_8c.html#a09271b787fc086f05a8a6e7c3282d6aa">remmina_rdp_event_on_map</a></div><div class="ttdeci">gboolean remmina_rdp_event_on_map(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__event_8c_source.html#l00052">rdp_event.c:52</a></div></div>
<div class="ttc" id="structrf__clipboard_html_af85bab349549714dc18a8938ac60926d"><div class="ttname"><a href="structrf__clipboard.html#af85bab349549714dc18a8938ac60926d">rf_clipboard::clientformatdatarequest_tv</a></div><div class="ttdeci">struct timeval clientformatdatarequest_tv</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00151">rdp_plugin.h:151</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_aa3191c66b2dabbb1a3c3c5474c6e9626"><div class="ttname"><a href="rdp__plugin_8c.html#aa3191c66b2dabbb1a3c3c5474c6e9626">gwtransp_list</a></div><div class="ttdeci">static gpointer gwtransp_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02705">rdp_plugin.c:2705</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_aa3191c66b2dabbb1a3c3c5474c6e9626"><div class="ttname"><a href="rdp__plugin_8c.html#aa3191c66b2dabbb1a3c3c5474c6e9626">gwtransp_list</a></div><div class="ttdeci">static gpointer gwtransp_list[]</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02736">rdp_plugin.c:2736</a></div></div>
<div class="ttc" id="structrf__context_html_a23192b58404d1dc629d5e7db3fb103be"><div class="ttname"><a href="structrf__context.html#a23192b58404d1dc629d5e7db3fb103be">rf_context::context</a></div><div class="ttdeci">rdpContext context</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00320">rdp_plugin.h:320</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a3b63a366a0db4fddced3f2cffa353b19"><div class="ttname"><a href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a></div><div class="ttdeci">static void remmina_rdp_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02524">rdp_plugin.c:2524</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a3b63a366a0db4fddced3f2cffa353b19"><div class="ttname"><a href="rdp__plugin_8c.html#a3b63a366a0db4fddced3f2cffa353b19">remmina_rdp_call_feature</a></div><div class="ttdeci">static void remmina_rdp_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l02555">rdp_plugin.c:2555</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_aaa37f5061689c3663087a19f598e550b"><div class="ttname"><a href="struct___remmina_plugin_service.html#aaa37f5061689c3663087a19f598e550b">_RemminaPluginService::protocol_plugin_init_get_domain</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_domain)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00196">plugin.h:196</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a997a36825f2338b8e06bcd59becef61b"><div class="ttname"><a href="struct___remmina_plugin_service.html#a997a36825f2338b8e06bcd59becef61b">_RemminaPluginService::is_main_thread</a></div><div class="ttdeci">gboolean(* is_main_thread)(void)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00250">plugin.h:250</a></div></div>
@@ -315,7 +316,7 @@ $(document).ready(function(){initNavTree('rdp__plugin_8c_source.html','');});
<div class="ttc" id="rdp__settings_8c_html_a4052ab6359b14e8f9a4cf76bed4da90c"><div class="ttname"><a href="rdp__settings_8c.html#a4052ab6359b14e8f9a4cf76bed4da90c">remmina_rdp_settings_get_keyboard_layout</a></div><div class="ttdeci">guint remmina_rdp_settings_get_keyboard_layout(void)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__settings_8c_source.html#l00072">rdp_settings.c:72</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_a70cc17b1d3603d036f962a0ae8496b35a5bec41fd19576fc5c3e397366461dfe4"><div class="ttname"><a href="rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35a5bec41fd19576fc5c3e397366461dfe4">REMMINA_RDP_UI_EVENT_UPDATE_SCALE</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00257">rdp_plugin.h:257</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_a1e2313a63a9cfd208ab722cc1e0ee072acd86c5f1b34b0d7168c94892cfd2cb9e"><div class="ttname"><a href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072acd86c5f1b34b0d7168c94892cfd2cb9e">REMMINA_RDP_UI_UPDATE_REGIONS</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00232">rdp_plugin.h:232</a></div></div>
-<div class="ttc" id="rdp__plugin_8c_html_a527c08af66797732d90664f342b5fa00"><div class="ttname"><a href="rdp__plugin_8c.html#a527c08af66797732d90664f342b5fa00">remmina_rdp_set_connection_type</a></div><div class="ttdeci">static gboolean remmina_rdp_set_connection_type(rdpSettings *settings, guint32 type)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01241">rdp_plugin.c:1241</a></div></div>
+<div class="ttc" id="rdp__plugin_8c_html_a527c08af66797732d90664f342b5fa00"><div class="ttname"><a href="rdp__plugin_8c.html#a527c08af66797732d90664f342b5fa00">remmina_rdp_set_connection_type</a></div><div class="ttdeci">static gboolean remmina_rdp_set_connection_type(rdpSettings *settings, guint32 type)</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l01242">rdp_plugin.c:1242</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/public/rdp__plugin_8h.html b/public/rdp__plugin_8h.html
index bcad3cf5c..3cfd4c415 100644
--- a/public/rdp__plugin_8h.html
+++ b/public/rdp__plugin_8h.html
@@ -607,7 +607,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00111">111</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00112">112</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
diff --git a/public/rdp__plugin_8h_source.html b/public/rdp__plugin_8h_source.html
index 4ef5aeb33..0b6503880 100644
--- a/public/rdp__plugin_8h_source.html
+++ b/public/rdp__plugin_8h_source.html
@@ -118,7 +118,7 @@ $(document).ready(function(){initNavTree('rdp__plugin_8h_source.html','');});
<div class="ttc" id="structrf__context_html_a3aead7f4d2c4580fcbd25e15679e19c6"><div class="ttname"><a href="structrf__context.html#a3aead7f4d2c4580fcbd25e15679e19c6">rf_context::surface</a></div><div class="ttdeci">cairo_surface_t * surface</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00366">rdp_plugin.h:366</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7a899b766953e73fd8aa148a9d8f28434b"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7a899b766953e73fd8aa148a9d8f28434b">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_DATA_REQUEST</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00185">rdp_plugin.h:185</a></div></div>
<div class="ttc" id="structrf__context_html_aa79909e0ac140a3404151a40bed6a6ec"><div class="ttname"><a href="structrf__context.html#aa79909e0ac140a3404151a40bed6a6ec">rf_context::remmina_plugin_thread</a></div><div class="ttdeci">pthread_t remmina_plugin_thread</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00329">rdp_plugin.h:329</a></div></div>
-<div class="ttc" id="rdp__plugin_8h_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="rdp__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00111">rdp_plugin.c:111</a></div></div>
+<div class="ttc" id="rdp__plugin_8h_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="rdp__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00112">rdp_plugin.c:112</a></div></div>
<div class="ttc" id="structrf__clipboard_html_a5c6be1637ed9e2ce72ffde2ed5400205"><div class="ttname"><a href="structrf__clipboard.html#a5c6be1637ed9e2ce72ffde2ed5400205">rf_clipboard::transfer_clip_mutex</a></div><div class="ttdeci">pthread_mutex_t transfer_clip_mutex</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00142">rdp_plugin.h:142</a></div></div>
<div class="ttc" id="structrf__context_html_ab5ffc4d8ba9d3d8a298414dc8e4efd2a"><div class="ttname"><a href="structrf__context.html#ab5ffc4d8ba9d3d8a298414dc8e4efd2a">rf_context::rdpgfxchan</a></div><div class="ttdeci">gboolean rdpgfxchan</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00341">rdp_plugin.h:341</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_adafbb901615d7fc9d8f31d5dbdae29d7aebb0df0651989a89f3f05e3c4894dd50"><div class="ttname"><a href="rdp__plugin_8h.html#adafbb901615d7fc9d8f31d5dbdae29d7aebb0df0651989a89f3f05e3c4894dd50">REMMINA_RDP_EVENT_TYPE_CLIPBOARD_SEND_CLIENT_FORMAT_LIST</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00183">rdp_plugin.h:183</a></div></div>
@@ -209,7 +209,7 @@ $(document).ready(function(){initNavTree('rdp__plugin_8h_source.html','');});
<div class="ttc" id="structremmina__plugin__rdp__ui__object_html_a66cdf13076e9a6b0c8d4e73a2e565c60"><div class="ttname"><a href="structremmina__plugin__rdp__ui__object.html#a66cdf13076e9a6b0c8d4e73a2e565c60">remmina_plugin_rdp_ui_object::sync</a></div><div class="ttdeci">gboolean sync</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00267">rdp_plugin.h:267</a></div></div>
<div class="ttc" id="structrf__clipboard_html"><div class="ttname"><a href="structrf__clipboard.html">rf_clipboard</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00133">rdp_plugin.h:133</a></div></div>
<div class="ttc" id="structrf__context_html_aafce196b029d2578151275acd07ccb82"><div class="ttname"><a href="structrf__context.html#aafce196b029d2578151275acd07ccb82">rf_context::object_table</a></div><div class="ttdeci">GHashTable * object_table</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00373">rdp_plugin.h:373</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
<div class="ttc" id="structremmina__plugin__rdp__event_html_ad3b01f14f235b582b54aa9a0057d5c1c"><div class="ttname"><a href="structremmina__plugin__rdp__event.html#ad3b01f14f235b582b54aa9a0057d5c1c">remmina_plugin_rdp_event::pFormatDataRequest</a></div><div class="ttdeci">CLIPRDR_FORMAT_DATA_REQUEST * pFormatDataRequest</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00213">rdp_plugin.h:213</a></div></div>
<div class="ttc" id="structrf__context_html_a9d28c775fe1ee90ad48941d753564a76"><div class="ttname"><a href="structrf__context.html#a9d28c775fe1ee90ad48941d753564a76">rf_context::srcBpp</a></div><div class="ttdeci">gint srcBpp</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00363">rdp_plugin.h:363</a></div></div>
<div class="ttc" id="rdp__plugin_8h_html_a1e2313a63a9cfd208ab722cc1e0ee072ad3ced07ddeda0100b59ca9c8af47bbe9"><div class="ttname"><a href="rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072ad3ced07ddeda0100b59ca9c8af47bbe9">REMMINA_RDP_UI_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8h_source.html#l00233">rdp_plugin.h:233</a></div></div>
diff --git a/public/remmina_8c_source.html b/public/remmina_8c_source.html
index 30268f485..3e613e54f 100644
--- a/public/remmina_8c_source.html
+++ b/public/remmina_8c_source.html
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('remmina_8c_source.html','');});
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0cab4e4dc22219fe0323279276222efb0b5"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cab4e4dc22219fe0323279276222efb0b5">REMMINA_COMMAND_ENCRYPT_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00055">remmina_exec.h:55</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0ca45777bb1a8f6a617da7eca5f7181d224"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca45777bb1a8f6a617da7eca5f7181d224">REMMINA_COMMAND_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00043">remmina_exec.h:43</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00609">remmina_plugin_manager.c:609</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00611">remmina_plugin_manager.c:611</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a2123e14795b104f5fe8d77a4b7847261"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">_RemminaSecretPlugin::is_service_available</a></div><div class="ttdeci">gboolean(* is_service_available)(struct _RemminaSecretPlugin *instance)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00144">plugin.h:144</a></div></div>
<div class="ttc" id="remmina__masterthread__exec_8c_html_a4a595ce198f8adda31fe11348b0f734e"><div class="ttname"><a href="remmina__masterthread__exec_8c.html#a4a595ce198f8adda31fe11348b0f734e">remmina_masterthread_exec_save_main_thread_id</a></div><div class="ttdeci">void remmina_masterthread_exec_save_main_thread_id()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__masterthread__exec_8c_source.html#l00141">remmina_masterthread_exec.c:141</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_a14a447ab8a10b109967d92c8d2db0ff9"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#a14a447ab8a10b109967d92c8d2db0ff9">remmina_sftp_plugin_register</a></div><div class="ttdeci">void remmina_sftp_plugin_register(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00387">remmina_sftp_plugin.c:387</a></div></div>
diff --git a/public/remmina__exec_8c_source.html b/public/remmina__exec_8c_source.html
index 752836c21..ddfdce9c1 100644
--- a/public/remmina__exec_8c_source.html
+++ b/public/remmina__exec_8c_source.html
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('remmina__exec_8c_source.html','');});
<div class="ttc" id="remmina__pref__dialog_8h_html"><div class="ttname"><a href="remmina__pref__dialog_8h.html">remmina_pref_dialog.h</a></div></div>
<div class="ttc" id="remmina__about_8h_html"><div class="ttname"><a href="remmina__about_8h.html">remmina_about.h</a></div></div>
<div class="ttc" id="remmina__icon_8c_html_a42f087b679b43b8a1d36cd9e9781a8b6"><div class="ttname"><a href="remmina__icon_8c.html#a42f087b679b43b8a1d36cd9e9781a8b6">remmina_icon_is_available</a></div><div class="ttdeci">gboolean remmina_icon_is_available(void)</div><div class="ttdoc">Determine whenever the Remmina icon is available. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__icon_8c_source.html#l00330">remmina_icon.c:330</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_ab563344276cbcdf0fcea05b0b64c7aeb"><div class="ttname"><a href="remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_full(const gchar *server, const gchar *protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02045">remmina_file_editor.c:2045</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_ab563344276cbcdf0fcea05b0b64c7aeb"><div class="ttname"><a href="remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_full(const gchar *server, const gchar *protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02139">remmina_file_editor.c:2139</a></div></div>
<div class="ttc" id="remmina__main_8c_html_af14b1942a754d7b2f5c10266208ebe01"><div class="ttname"><a href="remmina__main_8c.html#af14b1942a754d7b2f5c10266208ebe01">remmina_main_new</a></div><div class="ttdeci">GtkWidget * remmina_main_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01652">remmina_main.c:1652</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a009f32092bd1d8dcd8e783d25416f3df"><div class="ttname"><a href="remmina__main_8c.html#a009f32092bd1d8dcd8e783d25416f3df">remmina_main_save_before_destroy</a></div><div class="ttdeci">void remmina_main_save_before_destroy()</div><div class="ttdoc">Save the Remmina Main Window size and the expanded group before to close Remmina. ...</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00180">remmina_main.c:180</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_a93f5633a6348dc1df1a5723b3054a2a3"><div class="ttname"><a href="remmina__exec_8c.html#a93f5633a6348dc1df1a5723b3054a2a3">remmina_exec_get_build_config</a></div><div class="ttdeci">const gchar * remmina_exec_get_build_config(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00078">remmina_exec.c:78</a></div></div>
@@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('remmina__exec_8c_source.html','');});
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0caddf76fb98da2a8a197974ac1237dfb65"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0caddf76fb98da2a8a197974ac1237dfb65">REMMINA_COMMAND_EDIT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00048">remmina_exec.h:48</a></div></div>
<div class="ttc" id="struct___remmina_entry_plugin_html_afb2a9a6ff9289c08eccaaec0962f3c19"><div class="ttname"><a href="struct___remmina_entry_plugin.html#afb2a9a6ff9289c08eccaaec0962f3c19">_RemminaEntryPlugin::entry_func</a></div><div class="ttdeci">void(* entry_func)(struct _RemminaEntryPlugin *instance)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00097">plugin.h:97</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_ae9dfd6986f18cb3d846a4933ac792fd5ae79d14a54e119795478a6e390d7d3b40"><div class="ttname"><a href="remmina__exec_8h.html#ae9dfd6986f18cb3d846a4933ac792fd5ae79d14a54e119795478a6e390d7d3b40">REMMINA_CONDEXIT_ONMAINWINDELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00061">remmina_exec.h:61</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_aedec4e9cf18d99a559aa51065c2bc276"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a></div><div class="ttdeci">void remmina_plugin_manager_show(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00519">remmina_plugin_manager.c:519</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_aedec4e9cf18d99a559aa51065c2bc276"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a></div><div class="ttdeci">void remmina_plugin_manager_show(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00521">remmina_plugin_manager.c:521</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0cae084d7c048c5eb5045210062b225f5e5"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cae084d7c048c5eb5045210062b225f5e5">REMMINA_COMMAND_MAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00044">remmina_exec.h:44</a></div></div>
<div class="ttc" id="remmina__icon_8h_html"><div class="ttname"><a href="remmina__icon_8h.html">remmina_icon.h</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_ae3299f9cf136cb759dc052ee799b1f0d"><div class="ttname"><a href="remmina__exec_8c.html#ae3299f9cf136cb759dc052ee799b1f0d">remmina_exec_autostart_cb</a></div><div class="ttdeci">static void remmina_exec_autostart_cb(RemminaFile *remminafile, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00210">remmina_exec.c:210</a></div></div>
@@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('remmina__exec_8c_source.html','');});
<div class="ttc" id="remmina__exec_8c_html_a206abe0e916081b29c5faa52330e2271"><div class="ttname"><a href="remmina__exec_8c.html#a206abe0e916081b29c5faa52330e2271">remmina_exec_exitremmina</a></div><div class="ttdeci">void remmina_exec_exitremmina()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00089">remmina_exec.c:89</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a9a8d02227eb703bccc3f9296a5d89d6f"><div class="ttname"><a href="remmina__pref_8c.html#a9a8d02227eb703bccc3f9296a5d89d6f">remmina_pref_get_boolean</a></div><div class="ttdeci">gboolean remmina_pref_get_boolean(const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01158">remmina_pref.c:1158</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0cacc1267f3834ff091be0587522f2182b8"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cacc1267f3834ff091be0587522f2182b8">REMMINA_COMMAND_AUTOSTART</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00054">remmina_exec.h:54</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa9345cfe3fb32d326b652e96ee55eaea"><div class="ttname"><a href="remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02078">remmina_file_editor.c:2078</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa9345cfe3fb32d326b652e96ee55eaea"><div class="ttname"><a href="remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02172">remmina_file_editor.c:2172</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a95532ac6d110eeeb2e41d4b2a329797c"><div class="ttname"><a href="remmina__main_8c.html#a95532ac6d110eeeb2e41d4b2a329797c">remmina_main_destroy</a></div><div class="ttdeci">void remmina_main_destroy()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00193">remmina_main.c:193</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a5e421ba636d34e21bba5ece463e98892"><div class="ttname"><a href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a></div><div class="ttdeci">RemminaFile * remmina_file_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00093">remmina_file.c:93</a></div></div>
<div class="ttc" id="rcw_8h_html"><div class="ttname"><a href="rcw_8h.html">rcw.h</a></div></div>
@@ -155,7 +155,7 @@ $(document).ready(function(){initNavTree('remmina__exec_8c_source.html','');});
<div class="ttc" id="remmina__file__manager_8c_html_af7b58659604660eb0cb40b0e0f8348ab"><div class="ttname"><a href="remmina__file__manager_8c.html#af7b58659604660eb0cb40b0e0f8348ab">remmina_file_manager_load_file</a></div><div class="ttdeci">RemminaFile * remmina_file_manager_load_file(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00356">remmina_file_manager.c:356</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_aca2d356a03e1aac7b716b408183aa305"><div class="ttname"><a href="remmina__exec_8c.html#aca2d356a03e1aac7b716b408183aa305">newline_remove</a></div><div class="ttdeci">static void newline_remove(char *s)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00155">remmina_exec.c:155</a></div></div>
<div class="ttc" id="remmina__unlock_8c_html_a81e79e5c1c230b7e2bf27b2457801d4e"><div class="ttname"><a href="remmina__unlock_8c.html#a81e79e5c1c230b7e2bf27b2457801d4e">remmina_unlock_new</a></div><div class="ttdeci">gint remmina_unlock_new(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__unlock_8c_source.html#l00113">remmina_unlock.c:113</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_afe0881986b2a64bfb5460981dadcf28d"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a></div><div class="ttdeci">void remmina_plugin_manager_show_stdout()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00501">remmina_plugin_manager.c:501</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_afe0881986b2a64bfb5460981dadcf28d"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a></div><div class="ttdeci">void remmina_plugin_manager_show_stdout()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00503">remmina_plugin_manager.c:503</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0c"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0c">RemminaCommandType</a></div><div class="ttdeci">RemminaCommandType</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00042">remmina_exec.h:42</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_a53fad3994b2550300cfd4fd8bb2a2b5b"><div class="ttname"><a href="remmina__widget__pool_8c.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool_foreach</a></div><div class="ttdeci">gint remmina_widget_pool_foreach(RemminaWidgetPoolForEachFunc callback, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00108">remmina_widget_pool.c:108</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d">REMMINA_COMMAND_CONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00047">remmina_exec.h:47</a></div></div>
diff --git a/public/remmina__file_8c_source.html b/public/remmina__file_8c_source.html
index d68066f5e..c26cb50a3 100644
--- a/public/remmina__file_8c_source.html
+++ b/public/remmina__file_8c_source.html
@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('remmina__file_8c_source.html','');});
<a href="remmina__file_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2009-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;config.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &lt;fcntl.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;sys/stat.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;locale.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;langinfo.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &lt;utime.h&gt;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &lt;glib/gstdio.h&gt;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__crypt_8h.html">remmina_crypt.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__manager_8h.html">remmina_file_manager.h</a>&quot;</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__log_8h.html">remmina_log.h</a>&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__main_8h.html">remmina_main.h</a>&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__masterthread__exec_8h.html">remmina_masterthread_exec.h</a>&quot;</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a>&quot;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__sodium_8h.html">remmina_sodium.h</a>&quot;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__utils_8h.html">remmina_utils.h</a>&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#define MIN_WINDOW_WIDTH 10</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#define MIN_WINDOW_HEIGHT 10</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#define KEYFILE_GROUP_REMMINA &quot;remmina&quot;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#define KEYFILE_GROUP_STATE &quot;Remmina Connection States&quot;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="remmina__file_8c.html#a3793ec19ecbc8c8afc4d1dd8969f880d"> 73</a></span>&#160;<span class="keyword">static</span> <span class="keyword">struct </span>timespec <a class="code" href="remmina__file_8c.html#a3793ec19ecbc8c8afc4d1dd8969f880d">times</a>[2];</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">static</span> <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="remmina__file_8c.html#adab087b7139756f029020a87a5438cfa"> 76</a></span>&#160;<a class="code" href="remmina__file_8c.html#adab087b7139756f029020a87a5438cfa">remmina_file_new_empty</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; remminafile = g_new0(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>, 1);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; remminafile-&gt;settings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; remminafile-&gt;states = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">/* spsettings contains settings that are loaded from the secure_plugin.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> * it’s used by remmina_file_store_secret_plugin_password() to know</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> * where to change */</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; remminafile-&gt;spsettings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; remminafile-&gt;prevent_saving = FALSE;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> remminafile;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a5e421ba636d34e21bba5ece463e98892"> 93</a></span>&#160;<a class="code" href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">/* Try to load from the preference file for default settings first */</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#ac1cc2d7f827f7d64c7fd3edf10e9383e">remmina_file_load</a>(<a class="code" href="rcw_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> (remminafile) {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; g_free(remminafile-&gt;filename);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; remminafile-&gt;filename = NULL;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#adab087b7139756f029020a87a5438cfa">remmina_file_new_empty</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> remminafile;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#ac952f8ddb715314f11cef1ccc513fb7e"> 114</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; gchar *invalid_chars = <span class="stringliteral">&quot;\\%|/$?&lt;&gt;:*. \&quot;&quot;</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GString *filenamestr;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">const</span> gchar *s;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">/* functions we can use</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> * g_strstrip( string )</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> * Removes leading and trailing whitespace from a string</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> * g_strdelimit (str, invalid_chars, &#39;-&#39;))</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> * Convert each invalid_chars in a hyphen</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> * g_ascii_strdown(string)</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> * all lowercase</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> * To be safe we should remove control characters as well (but I&#39;m lazy)</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> * https://rosettacode.org/wiki/Strip_control_codes_and_extended_characters_from_a_string#C</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> * g_utf8_strncpy (gchar *dest, const gchar *src, gsize n);</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> * copies a given number of characters instead of a given number of bytes. The src string must be valid UTF-8 encoded text.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> * g_utf8_validate (const gchar *str, gssize max_len, const gchar **end);</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> * Validates UTF-8 encoded text.</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">//g_free(remminafile-&gt;filename), remminafile-&gt;filename = NULL;</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; filenamestr = g_string_new(g_strdup_printf(<span class="stringliteral">&quot;%s&quot;</span>,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#aa1544a98f03088dc260ed98f2deac94f">remmina_file_name</a>));</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span> ((s = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;name&quot;</span>)) == NULL) s = <span class="stringliteral">&quot;name&quot;</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">if</span> (g_strstr_len(filenamestr-&gt;str, -1, <span class="stringliteral">&quot;%N&quot;</span>) != NULL)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(filenamestr, <span class="stringliteral">&quot;%N&quot;</span>, s);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span> ((s = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;group&quot;</span>)) == NULL) s = <span class="stringliteral">&quot;group&quot;</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (g_strstr_len(filenamestr-&gt;str, -1, <span class="stringliteral">&quot;%G&quot;</span>) != NULL)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(filenamestr, <span class="stringliteral">&quot;%G&quot;</span>, s);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span> ((s = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;protocol&quot;</span>)) == NULL) s = <span class="stringliteral">&quot;proto&quot;</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span> (g_strstr_len(filenamestr-&gt;str, -1, <span class="stringliteral">&quot;%P&quot;</span>) != NULL)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(filenamestr, <span class="stringliteral">&quot;%P&quot;</span>, s);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> ((s = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;server&quot;</span>)) == NULL) s = <span class="stringliteral">&quot;host&quot;</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span> (g_strstr_len(filenamestr-&gt;str, -1, <span class="stringliteral">&quot;%h&quot;</span>) != NULL)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(filenamestr, <span class="stringliteral">&quot;%h&quot;</span>, s);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; s = NULL;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; g_autofree gchar *filename = g_strdelimit(g_ascii_strdown(g_strstrip(g_string_free(filenamestr, FALSE)), -1),</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; invalid_chars, <span class="charliteral">&#39;-&#39;</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GDir *dir = g_dir_open(<a class="code" href="remmina__file__manager_8c.html#aa65bc30beb59d607ba430d966e7e27f5">remmina_file_get_datadir</a>(), 0, NULL);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span> (dir != NULL)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; remminafile-&gt;filename = g_strdup_printf(<span class="stringliteral">&quot;%s/%s.remmina&quot;</span>, <a class="code" href="remmina__file__manager_8c.html#aa65bc30beb59d607ba430d966e7e27f5">remmina_file_get_datadir</a>(), filename);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; remminafile-&gt;filename = NULL;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; g_dir_close(dir);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#ab03b042504c09c1ad880ac126a703114"> 182</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#ab03b042504c09c1ad880ac126a703114">remmina_file_set_filename</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; g_free(remminafile-&gt;filename);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; remminafile-&gt;filename = g_strdup(filename);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#aeefa562baee867fba8c06165ae656de1"> 189</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#aeefa562baee867fba8c06165ae656de1">remmina_file_set_statefile</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> (!remminafile)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; g_free(remminafile-&gt;statefile);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; gchar *basename = g_path_get_basename(remminafile-&gt;filename);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; gchar *<a class="code" href="remmina__file__manager_8c.html#ace1098aad45256ac0b0155cb042472e9">cachedir</a> = g_build_path(<span class="stringliteral">&quot;/&quot;</span>, g_get_user_cache_dir(), <span class="stringliteral">&quot;remmina&quot;</span>, NULL);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GString *fname = g_string_new(basename);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; remminafile-&gt;statefile = g_strdup_printf(<span class="stringliteral">&quot;%s/%s.state&quot;</span>, cachedir, fname-&gt;str);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; g_free(cachedir);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; g_string_free(fname, TRUE);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; g_free(basename);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">const</span> gchar *</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#ad1e4f3a0f64cd98e301044b6c38a1f1d"> 210</a></span>&#160;<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> remminafile-&gt;filename;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#ac1685edf35a793a396ce039d7eec5343"> 217</a></span>&#160;<a class="code" href="remmina__file_8c.html#ac1685edf35a793a396ce039d7eec5343">remmina_file_copy</a>(<span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; gchar *buf;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#ac1cc2d7f827f7d64c7fd3edf10e9383e">remmina_file_load</a>(filename);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; buf = g_strdup_printf( <span class="stringliteral">&quot;COPY %s&quot;</span>,</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;name&quot;</span>));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;name&quot;</span>, buf);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; g_free(buf);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (remminafile)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(remminafile);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> remminafile;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="remmina__file_8c.html#a1399e5b83aa040b6613cf98be45b4c99"> 235</a></span>&#160;<span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *<a class="code" href="remmina__file_8c.html#a1399e5b83aa040b6613cf98be45b4c99">find_protocol_setting</a>(<span class="keyword">const</span> gchar *name, <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *protocol_plugin)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting_iter;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span> (protocol_plugin == NULL)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aae09a7e2c978cc36e85d0f295518978d">basic_settings</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (strcmp(name, <a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(setting_iter)) == 0)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> setting_iter;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; setting_iter++;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aceb00d9dff794500ccb04a1373eb32db">advanced_settings</a>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span> (strcmp(name, <a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(setting_iter)) == 0)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> setting_iter;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; setting_iter++;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960"> 265</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, gboolean protocol_is_ssh, gboolean ssh_enabled, gchar *suffix)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;{</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; gchar *src_key;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; gchar *dst_key;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">const</span> gchar *val;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; src_key = g_strdup_printf(<span class="stringliteral">&quot;ssh_%s&quot;</span>, suffix);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; dst_key = g_strdup_printf(<span class="stringliteral">&quot;ssh_tunnel_%s&quot;</span>, suffix);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; val = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, src_key);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span> (!val) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; g_free(dst_key);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; g_free(src_key);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (ssh_enabled &amp;&amp; val &amp;&amp; val[0] != 0)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, dst_key, val);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span> (!protocol_is_ssh)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, src_key, NULL);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; g_free(dst_key);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; g_free(src_key);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="remmina__file_8c.html#a3feeafd4956b364975aef178ef99b7a6"> 291</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a3feeafd4956b364975aef178ef99b7a6">upgrade_sshkeys_202001</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; gboolean protocol_is_ssh;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; gboolean ssh_enabled;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">const</span> gchar *val;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_enabled&quot;</span>)) {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="comment">/* Upgrade ssh params from remmina pre 1.4 */</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; ssh_enabled = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;ssh_enabled&quot;</span>, 0);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; val = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;protocol&quot;</span>);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; protocol_is_ssh = (strcmp(val, <span class="stringliteral">&quot;SSH&quot;</span>) == 0);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(remminafile, protocol_is_ssh, ssh_enabled, <span class="stringliteral">&quot;stricthostkeycheck&quot;</span>);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(remminafile, protocol_is_ssh, ssh_enabled, <span class="stringliteral">&quot;kex_algorithms&quot;</span>);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(remminafile, protocol_is_ssh, ssh_enabled, <span class="stringliteral">&quot;hostkeytypes&quot;</span>);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(remminafile, protocol_is_ssh, ssh_enabled, <span class="stringliteral">&quot;ciphers&quot;</span>);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(remminafile, protocol_is_ssh, ssh_enabled, <span class="stringliteral">&quot;proxycommand&quot;</span>);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(remminafile, protocol_is_ssh, ssh_enabled, <span class="stringliteral">&quot;passphrase&quot;</span>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(remminafile, protocol_is_ssh, ssh_enabled, <span class="stringliteral">&quot;auth&quot;</span>);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="remmina__file_8c.html#a42231fba69c82eb51a4e210c2de76960">upgrade_sshkeys_202001_mig_common_setting</a>(remminafile, protocol_is_ssh, ssh_enabled, <span class="stringliteral">&quot;privatekey&quot;</span>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; val = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_loopback&quot;</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">if</span> (val) {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_loopback&quot;</span>, val);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;ssh_loopback&quot;</span>, NULL);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; val = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_username&quot;</span>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (val) {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_username&quot;</span>, val);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span> (protocol_is_ssh)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>, val);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;ssh_username&quot;</span>, NULL);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; val = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_password&quot;</span>);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (val) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>, val);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span> (protocol_is_ssh)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, val);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;ssh_password&quot;</span>, NULL);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; val = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_server&quot;</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span> (val) {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_server&quot;</span>, val);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;ssh_server&quot;</span>, NULL);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">/* Real key removal will be done by remmina_file_save() */</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, ssh_enabled);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;}</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#ac1cc2d7f827f7d64c7fd3edf10e9383e"> 350</a></span>&#160;<a class="code" href="remmina__file_8c.html#ac1cc2d7f827f7d64c7fd3edf10e9383e">remmina_file_load</a>(<span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;{</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; GKeyFile *gkeyfile;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; gchar *key;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; gchar *s;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *protocol_plugin;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *secret_plugin;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; gboolean secret_service_available;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordtype">int</span> w, h;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; gkeyfile = g_key_file_new();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span> (g_file_test(filename, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_EXISTS)) {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> (!g_key_file_load_from_file(gkeyfile, filename, G_KEY_FILE_NONE, NULL)) {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; g_key_file_free(gkeyfile);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;Unable to load remmina profile file %s: g_key_file_load_from_file() returned NULL.\n&quot;</span>, filename);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (!g_key_file_has_key(gkeyfile, KEYFILE_GROUP_REMMINA, <span class="stringliteral">&quot;name&quot;</span>, NULL)) {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;Unable to load remmina profile file %s: cannot find key name= in section remmina.\n&quot;</span>, filename);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; remminafile = NULL;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="remmina__file_8c.html#aeefa562baee867fba8c06165ae656de1">remmina_file_set_statefile</a>(remminafile);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; g_key_file_free(gkeyfile);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> remminafile;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#adab087b7139756f029020a87a5438cfa">remmina_file_new_empty</a>();</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; protocol_plugin = NULL;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="comment">/* Identify the protocol plugin and get pointers to its RemminaProtocolSetting structs */</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; gchar *proto = g_key_file_get_string(gkeyfile, KEYFILE_GROUP_REMMINA, <span class="stringliteral">&quot;protocol&quot;</span>, NULL);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (proto) {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; protocol_plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)<a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, proto);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; g_free(proto);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; secret_plugin = <a class="code" href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a>();</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; secret_service_available = secret_plugin &amp;&amp; secret_plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">is_service_available</a>(secret_plugin);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; remminafile-&gt;filename = g_strdup(filename);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; gsize nkeys = 0;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; gint keyindex;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; GError *err = NULL;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; gchar **keys = g_key_file_get_keys(gkeyfile, KEYFILE_GROUP_REMMINA, &amp;nkeys, &amp;err);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (keys == NULL) {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; g_clear_error(&amp;err);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">for</span> (keyindex = 0; keyindex &lt; nkeys; ++keyindex) {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; key = keys[keyindex];</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">/* It may contain an encrypted password</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="comment"> * - password = . // secret_service</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="comment"> * - password = $argon2id$v=19$m=262144,t=3,p=… // libsodium</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span> (protocol_plugin &amp;&amp; <a class="code" href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a>(protocol_plugin, key)) {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; s = g_key_file_get_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, NULL);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">switch</span> (<a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a788378c190a4ec0ebcf60c570f3b50d5">enc_mode</a>) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53a90f2025ec8d2c4987db5591e8e3b4076">RM_ENC_MODE_SODIUM_INTERACTIVE</a>:</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53ad5263951640011bc43bd8a31f67a9f8b">RM_ENC_MODE_SODIUM_MODERATE</a>:</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53a0378e0f09c7bc6fd7f8d95b3827ad561">RM_ENC_MODE_SODIUM_SENSITIVE</a>:</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#if SODIUM_VERSION_INT &gt;= 90200</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53a315a71c81da464332f675857ae84b880">RM_ENC_MODE_GCRYPT</a>:</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53aa57e81572c52d0ea2bbb8dd90b10651a">RM_ENC_MODE_SECRET</a>:</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span> ((g_strcmp0(s, <span class="stringliteral">&quot;.&quot;</span>) == 0) &amp;&amp; (secret_service_available)) {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; gchar *sec = secret_plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a34defea2606bbc99a2c334f57e056b06">get_password</a>(secret_plugin, remminafile, key);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, key, sec);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="comment">/* Annotate in spsettings that this value comes from secret_plugin */</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; g_hash_table_insert(remminafile-&gt;spsettings, g_strdup(key), NULL);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; g_free(sec);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; gchar *decrypted;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; decrypted = <a class="code" href="remmina__crypt_8c.html#a3fe2fa245d401146adf02a3a8f996ab9">remmina_crypt_decrypt</a>(s);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, key, decrypted);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; g_free(decrypted);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; g_free(s), s = NULL;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">/* If we find &quot;resolution&quot;, then we split it in two */</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (strcmp(key, <span class="stringliteral">&quot;resolution&quot;</span>) == 0) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; gchar *resolution_str = g_key_file_get_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, NULL);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__public_8c.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public_split_resolution_string</a>(resolution_str, &amp;w, &amp;h)) {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; gchar *buf;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; buf = g_strdup_printf(<span class="stringliteral">&quot;%i&quot;</span>, w); <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;resolution_width&quot;</span>, buf); g_free(buf);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; buf = g_strdup_printf(<span class="stringliteral">&quot;%i&quot;</span>, h); <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;resolution_height&quot;</span>, buf); g_free(buf);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;resolution_width&quot;</span>, NULL);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;resolution_height&quot;</span>, NULL);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; g_free(resolution_str);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; gchar *value;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; value = g_key_file_get_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, NULL);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, key, value);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; g_free(value);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="remmina__file_8c.html#a3feeafd4956b364975aef178ef99b7a6">upgrade_sshkeys_202001</a>(remminafile);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; g_strfreev(keys);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="remmina__file_8c.html#aeefa562baee867fba8c06165ae656de1">remmina_file_set_statefile</a>(remminafile);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; g_key_file_free(gkeyfile);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> remminafile;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;}</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a85ca1ca2d0bf9ef29e490c6f4527a954"> 469</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting, <span class="keyword">const</span> gchar *value)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;{</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">/* Note: setting and value are copied on the heap, so it is responsibility of the caller</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="comment"> * to deallocate them when returning from remmina_file_set_string() if needed */</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__masterthread__exec_8c.html#a3a52e863a3a3da6da6bb5d36c13b7ff4">remmina_masterthread_exec_is_main_thread</a>()) {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">/* Allow the execution of this function from a non main thread</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="comment"> * (plugins needs it to have user credentials)*/</span></div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="structremmina__masterthread__exec__data.html">RemminaMTExecData</a> *d;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; d = (<a class="code" href="structremmina__masterthread__exec__data.html">RemminaMTExecData</a> *)g_malloc(<span class="keyword">sizeof</span>(<a class="code" href="structremmina__masterthread__exec__data.html">RemminaMTExecData</a>));</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; d-&gt;<a class="code" href="structremmina__masterthread__exec__data.html#ab3d58f7a9847ce04c9dcd3917910fdb1">func</a> = FUNC_FILE_SET_STRING;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; d-&gt;<a class="code" href="structremmina__masterthread__exec__data.html#abea1e7f8f2ed7639f59907b622fba688">p</a>.<a class="code" href="structremmina__masterthread__exec__data.html#af4aac360c396741c659474158d7c0e87">file_set_string</a>.remminafile = remminafile;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; d-&gt;<a class="code" href="structremmina__masterthread__exec__data.html#abea1e7f8f2ed7639f59907b622fba688">p</a>.<a class="code" href="structremmina__masterthread__exec__data.html#af4aac360c396741c659474158d7c0e87">file_set_string</a>.setting = setting;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; d-&gt;<a class="code" href="structremmina__masterthread__exec__data.html#abea1e7f8f2ed7639f59907b622fba688">p</a>.<a class="code" href="structremmina__masterthread__exec__data.html#af4aac360c396741c659474158d7c0e87">file_set_string</a>.value = value;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="remmina__masterthread__exec_8c.html#a14628c2470cac50e87916a70ea05c97d">remmina_masterthread_exec_and_wait</a>(d);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; g_free(d);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span> (value) {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">/* We refuse to accept to set the &quot;resolution&quot; field */</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span> (strcmp(setting, <span class="stringliteral">&quot;resolution&quot;</span>) == 0) {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// TRANSLATORS: This is a message that pops up when an external Remmina plugin tries to set the window resolution using a legacy parameter.</span></div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">const</span> gchar *message = _(<span class="stringliteral">&quot;Using the «resolution» parameter in the Remmina preferences file is deprecated.\n&quot;</span>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; REMMINA_CRITICAL(message);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="remmina__main_8c.html#ad99b9c0bf2fa8c166a8b4a09e06ffdf7">remmina_main_show_warning_dialog</a>(message);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; g_hash_table_insert(remminafile-&gt;settings, g_strdup(setting), g_strdup(value));</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; g_hash_table_insert(remminafile-&gt;settings, g_strdup(setting), g_strdup(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;}</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a2c41790e4881335bf934b6c10f94f29d"> 505</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a2c41790e4881335bf934b6c10f94f29d">remmina_file_set_state</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting, <span class="keyword">const</span> gchar *value)</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;{</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">if</span> (value &amp;&amp; value[0] != 0)</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; g_hash_table_insert(remminafile-&gt;states, g_strdup(setting), g_strdup(value));</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; g_hash_table_insert(remminafile-&gt;states, g_strdup(setting), g_strdup(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;}</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="keyword">const</span> gchar *</div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a8eb1b213d9d08c6ad13683ce05f4355e"> 516</a></span>&#160;<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting)</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;{</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; gchar *value;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="comment">/* Returned value is a pointer to the string stored on the hash table,</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="comment"> * please do not free it or the hash table will contain invalid pointer */</span></div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__masterthread__exec_8c.html#a3a52e863a3a3da6da6bb5d36c13b7ff4">remmina_masterthread_exec_is_main_thread</a>()) {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="comment">/* Allow the execution of this function from a non main thread</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment"> * (plugins needs it to have user credentials)*/</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="structremmina__masterthread__exec__data.html">RemminaMTExecData</a> *d;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keyword">const</span> gchar *retval;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; d = (<a class="code" href="structremmina__masterthread__exec__data.html">RemminaMTExecData</a> *)g_malloc(<span class="keyword">sizeof</span>(<a class="code" href="structremmina__masterthread__exec__data.html">RemminaMTExecData</a>));</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; d-&gt;<a class="code" href="structremmina__masterthread__exec__data.html#ab3d58f7a9847ce04c9dcd3917910fdb1">func</a> = FUNC_FILE_GET_STRING;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; d-&gt;<a class="code" href="structremmina__masterthread__exec__data.html#abea1e7f8f2ed7639f59907b622fba688">p</a>.<a class="code" href="structremmina__masterthread__exec__data.html#ac76a0900842e936efdd2add9ec352886">file_get_string</a>.remminafile = remminafile;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; d-&gt;<a class="code" href="structremmina__masterthread__exec__data.html#abea1e7f8f2ed7639f59907b622fba688">p</a>.<a class="code" href="structremmina__masterthread__exec__data.html#ac76a0900842e936efdd2add9ec352886">file_get_string</a>.setting = setting;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="remmina__masterthread__exec_8c.html#a14628c2470cac50e87916a70ea05c97d">remmina_masterthread_exec_and_wait</a>(d);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; retval = d-&gt;<a class="code" href="structremmina__masterthread__exec__data.html#abea1e7f8f2ed7639f59907b622fba688">p</a>.<a class="code" href="structremmina__masterthread__exec__data.html#ac76a0900842e936efdd2add9ec352886">file_get_string</a>.retval;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; g_free(d);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> retval;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">if</span> (strcmp(setting, <span class="stringliteral">&quot;resolution&quot;</span>) == 0) {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="comment">// TRANSLATORS: This is a message that pop-up when an external Remmina plugin tries to set the windows resolution using a legacy parameter.</span></div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keyword">const</span> gchar *message = _(<span class="stringliteral">&quot;Using the «resolution» parameter in the Remmina preferences file is deprecated.\n&quot;</span>);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; REMMINA_CRITICAL(message);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="remmina__main_8c.html#ad99b9c0bf2fa8c166a8b4a09e06ffdf7">remmina_main_show_warning_dialog</a>(message);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; value = (gchar *)g_hash_table_lookup(remminafile-&gt;settings, setting);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">return</span> value &amp;&amp; value[0] ? value : NULL;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;}</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;gchar *</div><div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#ad514c2523ff0c919ddf535e3dbad9f3a"> 551</a></span>&#160;<a class="code" href="remmina__file_8c.html#ad514c2523ff0c919ddf535e3dbad9f3a">remmina_file_get_secret</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;{</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="comment">/* This function is in the RemminaPluginService table, we cannot remove it</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment"> * without breaking plugin API */</span></div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; g_warning(<span class="stringliteral">&quot;remmina_file_get_secret(remminafile,“%s”) is deprecated and must not be called. Use remmina_file_get_string() and do not deallocate returned memory.\n&quot;</span>, setting);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">return</span> g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, setting));</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;}</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#afd8b12f3d84b4e201b9f465d5b8e0d03"> 561</a></span>&#160;gchar *<a class="code" href="remmina__file_8c.html#afd8b12f3d84b4e201b9f465d5b8e0d03">remmina_file_format_properties</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting)</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;{</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; gchar *res = NULL;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; GString *fmt_str;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; GDateTime *now;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; gchar *date_str = NULL;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; fmt_str = g_string_new(setting);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(fmt_str, <span class="stringliteral">&quot;%h&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;server&quot;</span>));</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(fmt_str, <span class="stringliteral">&quot;%t&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_server&quot;</span>));</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(fmt_str, <span class="stringliteral">&quot;%u&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;username&quot;</span>));</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(fmt_str, <span class="stringliteral">&quot;%U&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_username&quot;</span>));</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(fmt_str, <span class="stringliteral">&quot;%p&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;name&quot;</span>));</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(fmt_str, <span class="stringliteral">&quot;%g&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;group&quot;</span>));</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; now = g_date_time_new_now_local();</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; date_str = g_date_time_format(now, <span class="stringliteral">&quot;%FT%TZ&quot;</span>);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(fmt_str, <span class="stringliteral">&quot;%d&quot;</span>, date_str);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; g_free(date_str);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; res = g_string_free(fmt_str, FALSE);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;}</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#af153b0d289ac93f6ecdaa15d5f3b9b8c"> 585</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting, gint value)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">if</span> (remminafile)</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; g_hash_table_insert(remminafile-&gt;settings,</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; g_strdup(setting),</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; g_strdup_printf(<span class="stringliteral">&quot;%i&quot;</span>, value));</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;}</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#ac1089fb270a526fa8a4d1bf65ad4d14e"> 594</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#ac1089fb270a526fa8a4d1bf65ad4d14e">remmina_file_set_state_int</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting, gint value)</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;{</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">if</span> (remminafile)</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; g_hash_table_insert(remminafile-&gt;states,</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; g_strdup(setting),</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; g_strdup_printf(<span class="stringliteral">&quot;%i&quot;</span>, value));</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;}</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a4884356c195dcfb4ceacf641a1e74e66"> 603</a></span>&#160;gint <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting, gint default_value)</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;{</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; gchar *value;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; gint r;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; value = g_hash_table_lookup(remminafile-&gt;settings, setting);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; r = value == NULL ? default_value : (value[0] == <span class="charliteral">&#39;t&#39;</span> ? TRUE : atoi(value));</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="comment">// TOO verbose: REMMINA_DEBUG (&quot;Integer value is: %d&quot;, r);</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> r;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;}</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#aba0aa663aaad89e4df41b42259d29841"> 615</a></span>&#160;gint <a class="code" href="remmina__file_8c.html#aba0aa663aaad89e4df41b42259d29841">remmina_file_get_state_int</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting, gint default_value)</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;{</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; gchar *value;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; gint r;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; value = g_hash_table_lookup(remminafile-&gt;states, setting);</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; r = value == NULL ? default_value : (value[0] == <span class="charliteral">&#39;t&#39;</span> ? TRUE : atoi(value));</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="comment">// TOO verbose: REMMINA_DEBUG (&quot;Integer value is: %d&quot;, r);</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">return</span> r;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;}</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="comment">// sscanf uses the set language to convert the float.</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="comment">// therefore &#39;.&#39; and &#39;,&#39; cannot be used interchangeably.</span></div><div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a4e31f91e2398f16844f58c1cf13582da"> 629</a></span>&#160;gdouble <a class="code" href="remmina__file_8c.html#a4e31f91e2398f16844f58c1cf13582da">remmina_file_get_double</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> * remminafile,</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keyword">const</span> gchar * setting,</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; gdouble default_value)</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;{</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; gchar *value;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; value = g_hash_table_lookup(remminafile-&gt;settings, setting);</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">if</span> (!value)</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">return</span> default_value;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="comment">// str to double.</span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="comment">// https://stackoverflow.com/questions/10075294/converting-string-to-a-double-variable-in-c</span></div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; gdouble d;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; gint ret = sscanf(value, <span class="stringliteral">&quot;%lf&quot;</span>, &amp;d);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">if</span> (ret != 1)</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// failed.</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; d = default_value;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="comment">// TOO VERBOSE: REMMINA_DEBUG(&quot;Double value is: %lf&quot;, d);</span></div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">return</span> d;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;}</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="comment">// sscanf uses the set language to convert the float.</span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="comment">// therefore &#39;.&#39; and &#39;,&#39; cannot be used interchangeably.</span></div><div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#ad2cf2ab34ab748bb984005fdd579d113"> 655</a></span>&#160;gdouble <a class="code" href="remmina__file_8c.html#ad2cf2ab34ab748bb984005fdd579d113">remmina_file_get_state_double</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> * remminafile,</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keyword">const</span> gchar * setting,</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; gdouble default_value)</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;{</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; gchar *value;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; value = g_hash_table_lookup(remminafile-&gt;states, setting);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">if</span> (!value)</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">return</span> default_value;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="comment">// str to double.</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="comment">// https://stackoverflow.com/questions/10075294/converting-string-to-a-double-variable-in-c</span></div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; gdouble d;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; gint ret = sscanf(value, <span class="stringliteral">&quot;%lf&quot;</span>, &amp;d);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">if</span> (ret != 1)</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="comment">// failed.</span></div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; d = default_value;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="comment">// TOO VERBOSE: REMMINA_DEBUG(&quot;Double value is: %lf&quot;, d);</span></div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">return</span> d;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;}</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="keyword">static</span> GKeyFile *</div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="remmina__file_8c.html#a89ec355adbf6e03ad16d7faf810af46f"> 680</a></span>&#160;<a class="code" href="remmina__file_8c.html#a89ec355adbf6e03ad16d7faf810af46f">remmina_file_get_keyfile</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;{</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; GKeyFile *gkeyfile;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;filename == NULL)</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; gkeyfile = g_key_file_new();</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">if</span> (!g_key_file_load_from_file(gkeyfile, remminafile-&gt;filename, G_KEY_FILE_NONE, NULL)) {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="comment">/* it will fail if it’s a new file, but shouldn’t matter. */</span></div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; }</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">return</span> gkeyfile;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="keyword">static</span> GKeyFile *</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="remmina__file_8c.html#a227276a531775a77d497852ce66ebdd2"> 695</a></span>&#160;<a class="code" href="remmina__file_8c.html#a227276a531775a77d497852ce66ebdd2">remmina_file_get_keystate</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;{</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; GKeyFile *gkeyfile;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;statefile == NULL)</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; gkeyfile = g_key_file_new();</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">if</span> (!g_key_file_load_from_file(gkeyfile, remminafile-&gt;statefile, G_KEY_FILE_NONE, NULL)) {</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="comment">/* it will fail if it’s a new file, but shouldn’t matter. */</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">return</span> gkeyfile;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;}</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#abd2f06bf0a5ddcf7156e5ef7d0c8d4d7"> 709</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#abd2f06bf0a5ddcf7156e5ef7d0c8d4d7">remmina_file_free</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;{</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">if</span> (remminafile == NULL)</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;filename)</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; g_free(remminafile-&gt;filename);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;statefile)</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; g_free(remminafile-&gt;statefile);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;settings)</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; g_hash_table_destroy(remminafile-&gt;settings);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;spsettings)</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; g_hash_table_destroy(remminafile-&gt;spsettings);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;states)</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; g_hash_table_destroy(remminafile-&gt;states);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; g_free(remminafile);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;}</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a8c893a5deec9bc446bd89cc9973416c7"> 730</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;{</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *secret_plugin;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; gboolean secret_service_available;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *protocol_plugin;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; GHashTableIter iter;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keyword">const</span> gchar *key, *value;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; gchar *s, *proto, *content;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; gint nopasswdsave;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; GKeyFile *gkeyfile;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; GKeyFile *gkeystate;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; gsize length = 0;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; GError *err = NULL;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;prevent_saving)</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">if</span> ((gkeyfile = <a class="code" href="remmina__file_8c.html#a89ec355adbf6e03ad16d7faf810af46f">remmina_file_get_keyfile</a>(remminafile)) == NULL)</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span> ((gkeystate = <a class="code" href="remmina__file_8c.html#a227276a531775a77d497852ce66ebdd2">remmina_file_get_keystate</a>(remminafile)) == NULL)</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;Saving profile&quot;</span>);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="comment">/* get disablepasswordstoring */</span></div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; nopasswdsave = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, 0);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="comment">/* Identify the protocol plugin and get pointers to its RemminaProtocolSetting structs */</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; proto = (gchar *)g_hash_table_lookup(remminafile-&gt;settings, <span class="stringliteral">&quot;protocol&quot;</span>);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">if</span> (proto) {</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; protocol_plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)<a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, proto);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; REMMINA_CRITICAL(<span class="stringliteral">&quot;Saving settings for unknown protocol:&quot;</span>, proto);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; protocol_plugin = NULL;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; secret_plugin = <a class="code" href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a>();</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; secret_service_available = secret_plugin &amp;&amp; secret_plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">is_service_available</a>(secret_plugin);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; g_hash_table_iter_init(&amp;iter, remminafile-&gt;settings);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">while</span> (g_hash_table_iter_next(&amp;iter, (gpointer *)&amp;key, (gpointer *)&amp;value)) {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a>(protocol_plugin, key)) {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;filename &amp;&amp; g_strcmp0(remminafile-&gt;filename, <a class="code" href="rcw_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a>)) {</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">if</span> (secret_service_available &amp;&amp; nopasswdsave == 0) {</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;We have a secret and disablepasswordstoring=0&quot;</span>);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">if</span> (value &amp;&amp; value[0]) {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(value, <span class="stringliteral">&quot;.&quot;</span>) != 0)</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; secret_plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a03fab6fcb013fa87be06d551f936c317">store_password</a>(secret_plugin, remminafile, key, value);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; g_key_file_set_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, <span class="stringliteral">&quot;.&quot;</span>);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; g_key_file_set_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; secret_plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#abbe56963e94b1a131f3e6d9bcafce772">delete_password</a>(secret_plugin, remminafile, key);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; }</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;We have a password and disablepasswordstoring=0&quot;</span>);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordflow">if</span> (value &amp;&amp; value[0] &amp;&amp; nopasswdsave == 0) {</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; s = <a class="code" href="remmina__crypt_8c.html#aa02cf0fed3eb68d6a89815c3ba3bf7b1">remmina_crypt_encrypt</a>(value);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; g_key_file_set_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, s);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; g_free(s);</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; g_key_file_set_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; }</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; }</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">if</span> (secret_service_available &amp;&amp; nopasswdsave == 1) {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">if</span> (value &amp;&amp; value[0]) {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span> (g_strcmp0(value, <span class="stringliteral">&quot;.&quot;</span>) != 0) {</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;Deleting the secret in the keyring as disablepasswordstoring=1&quot;</span>);</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; secret_plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#abbe56963e94b1a131f3e6d9bcafce772">delete_password</a>(secret_plugin, remminafile, key);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; g_key_file_set_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, <span class="stringliteral">&quot;.&quot;</span>);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; }</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; }</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; g_key_file_set_string(gkeyfile, KEYFILE_GROUP_REMMINA, key, value);</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; }</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; }</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="comment">/* Avoid storing redundant and deprecated &quot;resolution&quot; field */</span></div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; g_key_file_remove_key(gkeyfile, KEYFILE_GROUP_REMMINA, <span class="stringliteral">&quot;resolution&quot;</span>, NULL);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="comment">/* Delete old pre-1.4 ssh keys */</span></div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; g_key_file_remove_key(gkeyfile, KEYFILE_GROUP_REMMINA, <span class="stringliteral">&quot;ssh_enabled&quot;</span>, NULL);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; g_key_file_remove_key(gkeyfile, KEYFILE_GROUP_REMMINA, <span class="stringliteral">&quot;save_ssh_server&quot;</span>, NULL);</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; g_key_file_remove_key(gkeyfile, KEYFILE_GROUP_REMMINA, <span class="stringliteral">&quot;save_ssh_username&quot;</span>, NULL);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="comment">/* Store gkeyfile to disk (password are already sent to keyring) */</span></div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; content = g_key_file_to_data(gkeyfile, &amp;length, NULL);</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">if</span> (g_file_set_contents(remminafile-&gt;filename, content, length, &amp;err))</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;Profile saved&quot;</span>);</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; REMMINA_WARNING(<span class="stringliteral">&quot;Remmina connection profile cannot be saved, with error %d (%s)&quot;</span>, err-&gt;code, err-&gt;message);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">if</span> (err != NULL)</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; g_error_free(err);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; g_free(content), content = NULL;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="comment">/* Saving states */</span></div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; g_hash_table_iter_init(&amp;iter, remminafile-&gt;states);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">while</span> (g_hash_table_iter_next(&amp;iter, (gpointer *)&amp;key, (gpointer *)&amp;value))</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; g_key_file_set_string(gkeyfile, KEYFILE_GROUP_STATE, key, value);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; content = g_key_file_to_data(gkeystate, &amp;length, NULL);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">if</span> (g_file_set_contents(remminafile-&gt;statefile, content, length, &amp;err))</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;Connection profile states saved&quot;</span>);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; REMMINA_WARNING(<span class="stringliteral">&quot;Remmina connection profile cannot be saved, with error %d (%s)&quot;</span>, err-&gt;code, err-&gt;message);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">if</span> (err != NULL)</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; g_error_free(err);</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; g_free(content), content = NULL;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; g_key_file_free(gkeyfile);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; g_key_file_free(gkeystate);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a994425a04b78282ff40a05580cc9355c">list_refresh_workaround</a>)</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <a class="code" href="remmina__main_8c.html#a5ae0372dafe41f96a09097c07d1b270a">remmina_main_update_file_datetime</a>(remminafile);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;}</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a3be28ff7f5a9b44dc47f92b883a85ac5"> 846</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a3be28ff7f5a9b44dc47f92b883a85ac5">remmina_file_store_secret_plugin_password</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *key, <span class="keyword">const</span> gchar *value)</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;{</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="comment">/* Only change the password in the keyring. This function</span></div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;<span class="comment"> * is a shortcut which avoids updating of date/time of .pref file</span></div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="comment"> * when possible, and is used by the mpchanger */</span></div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *plugin;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">if</span> (g_hash_table_lookup_extended(remminafile-&gt;spsettings, g_strdup(key), NULL, NULL)) {</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; plugin = <a class="code" href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a>();</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a03fab6fcb013fa87be06d551f936c317">store_password</a>(plugin, remminafile, key, value);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, key, value);</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(remminafile);</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; }</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;}</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *</div><div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a3fb992fced83e0f1c4e4e3c8d2206be5"> 865</a></span>&#160;<a class="code" href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;{</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *dupfile;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; GHashTableIter iter;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keyword">const</span> gchar *key, *value;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; dupfile = <a class="code" href="remmina__file_8c.html#adab087b7139756f029020a87a5438cfa">remmina_file_new_empty</a>();</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; dupfile-&gt;filename = g_strdup(remminafile-&gt;filename);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; g_hash_table_iter_init(&amp;iter, remminafile-&gt;settings);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">while</span> (g_hash_table_iter_next(&amp;iter, (gpointer *)&amp;key, (gpointer *)&amp;value))</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(dupfile, key, value);</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="remmina__file_8c.html#aeefa562baee867fba8c06165ae656de1">remmina_file_set_statefile</a>(dupfile);</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="remmina__file_8c.html#a3d19095f74e9b7c92d74f11bd5a39a8c">remmina_file_touch</a>(dupfile);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">return</span> dupfile;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;}</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;<span class="keyword">const</span> gchar *</div><div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a2feb8e9e32f3ff4e2fac836e67a77331"> 885</a></span>&#160;<a class="code" href="remmina__file_8c.html#a2feb8e9e32f3ff4e2fac836e67a77331">remmina_file_get_icon_name</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;{</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *plugin;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)<a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>,</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;protocol&quot;</span>));</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordflow">if</span> (!plugin)</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> g_strconcat(REMMINA_APP_ID, <span class="stringliteral">&quot;-symbolic&quot;</span>, NULL);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, FALSE) ? plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a8a4c7d195e85a1428abf82e952ff4df3">icon_name_ssh</a> : plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a9552c70a10eea2b8263dbc7d05e2fb10">icon_name</a>;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;}</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *</div><div class="line"><a name="l00899"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a52a0986eaf54c9e606ce9cdf8bb57e60"> 899</a></span>&#160;<a class="code" href="remmina__file_8c.html#a52a0986eaf54c9e606ce9cdf8bb57e60">remmina_file_dup_temp_protocol</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *new_protocol)</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;{</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *tmp;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; tmp = <a class="code" href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a>(remminafile);</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; g_free(tmp-&gt;filename);</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; tmp-&gt;filename = NULL;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(tmp, <span class="stringliteral">&quot;protocol&quot;</span>, new_protocol);</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">return</span> tmp;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;}</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div><div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a55f66f2bb81bf427d6837e1adb7fe1d4"> 911</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a55f66f2bb81bf427d6837e1adb7fe1d4">remmina_file_delete</a>(<span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;{</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#ac1cc2d7f827f7d64c7fd3edf10e9383e">remmina_file_load</a>(filename);</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span> (remminafile) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <a class="code" href="remmina__file_8c.html#a503e53fe49430a5ed310c342c946c014">remmina_file_unsave_passwords</a>(remminafile);</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="remmina__file_8c.html#abd2f06bf0a5ddcf7156e5ef7d0c8d4d7">remmina_file_free</a>(remminafile);</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; }</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; g_unlink(filename);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;}</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;<span class="keyword">const</span> gchar *</div><div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#af8c58daf7ee71345ae548e7a5332a8f6"> 925</a></span>&#160;<a class="code" href="remmina__file_8c.html#af8c58daf7ee71345ae548e7a5332a8f6">remmina_file_get_state</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, <span class="keyword">const</span> gchar *setting)</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;{</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; g_autoptr(GError) error = NULL;</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; g_autoptr(GKeyFile) key_file = g_key_file_new();</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">if</span> (!g_key_file_load_from_file(key_file, remminafile-&gt;statefile, G_KEY_FILE_NONE, &amp;error)) {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordflow">if</span> (!g_error_matches(error, G_FILE_ERROR, G_FILE_ERROR_NOENT))</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; REMMINA_CRITICAL(<span class="stringliteral">&quot;Could not load the state file. %s&quot;</span>, error-&gt;message);</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; }</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; g_autofree gchar *val = g_key_file_get_string(key_file, KEYFILE_GROUP_STATE, setting, &amp;error);</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">if</span> (val == NULL &amp;&amp;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; !g_error_matches(error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) {</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; REMMINA_CRITICAL(<span class="stringliteral">&quot;Could not find \&quot;%s\&quot; in the \&quot;%s\&quot; state file. %s&quot;</span>,</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; setting, remminafile-&gt;statefile, error-&gt;message);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">return</span> val &amp;&amp; val[0] ? val : NULL;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;}</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a493ffa77b862ff3bad9ea951592715a8"> 948</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a493ffa77b862ff3bad9ea951592715a8">remmina_file_state_last_success</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;{</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; g_autoptr(GKeyFile) key_statefile = g_key_file_new();</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; g_autoptr(GKeyFile) key_remminafile = g_key_file_new();</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; GError *error = NULL;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keyword">const</span> gchar *date = NULL;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; GDateTime *d = g_date_time_new_now_utc();</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; date = g_strdup_printf(<span class="stringliteral">&quot;%d%02d%02d&quot;</span>,</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; g_date_time_get_year(d),</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; g_date_time_get_month(d),</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; g_date_time_get_day_of_month(d));</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; g_key_file_set_string(key_statefile, KEYFILE_GROUP_STATE, <span class="stringliteral">&quot;last_success&quot;</span>, date);</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;State file %s.&quot;</span>, remminafile-&gt;statefile);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">if</span> (!g_key_file_save_to_file(key_statefile, remminafile-&gt;statefile, &amp;error)) {</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; REMMINA_CRITICAL(<span class="stringliteral">&quot;Could not save the key file. %s&quot;</span>, error-&gt;message);</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; g_error_free(error);</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; error = NULL;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; }</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="comment">/* Delete old pre-1.5 keys */</span></div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; g_key_file_remove_key(key_remminafile, KEYFILE_GROUP_REMMINA, <span class="stringliteral">&quot;last_success&quot;</span>, NULL);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;Last connection made on %s.&quot;</span>, date);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;}</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;</div><div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a503e53fe49430a5ed310c342c946c014"> 978</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file_8c.html#a503e53fe49430a5ed310c342c946c014">remmina_file_unsave_passwords</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;{</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="comment">/* Delete all saved secrets for this profile */</span></div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting_iter;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *protocol_plugin;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; gchar *proto;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; protocol_plugin = NULL;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;password&quot;</span>, NULL);</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; proto = (gchar *)g_hash_table_lookup(remminafile-&gt;settings, <span class="stringliteral">&quot;protocol&quot;</span>);</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span> (proto) {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; protocol_plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)<a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, proto);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">if</span> (protocol_plugin) {</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aae09a7e2c978cc36e85d0f295518978d">basic_settings</a>;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="comment">// TOO VERBOSE: g_debug(&quot;setting name: %s&quot;, setting_iter-&gt;name);</span></div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">if</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a> == NULL)</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; g_error(<span class="stringliteral">&quot;Internal error: a setting name in protocol plugin %s is null. Please fix RemminaProtocolSetting struct content.&quot;</span>, proto);</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a>(protocol_plugin, setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>))</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(setting_iter), NULL);</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; setting_iter++;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; }</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; }</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aceb00d9dff794500ccb04a1373eb32db">advanced_settings</a>;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a>(protocol_plugin, setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>))</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(setting_iter), NULL);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; setting_iter++;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; }</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; }</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(remminafile);</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; }</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; }</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;}</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;gchar *</div><div class="line"><a name="l01031"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a96abbfdc183d1e82fdffd6445d611ffe"> 1031</a></span>&#160;<a class="code" href="remmina__file_8c.html#a96abbfdc183d1e82fdffd6445d611ffe">remmina_file_get_datetime</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;{</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; GFile *file;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; GFileInfo *info;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keyword">struct </span>timeval tv;</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keyword">struct </span>tm *ptm;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="keywordtype">char</span> time_string[256];</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; gchar *tmps;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; guint64 mtime;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordflow">if</span> (remminafile-&gt;statefile)</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="comment">//REMMINA_DEBUG (&quot;remminafile-&gt;statefile: %s&quot;, remminafile-&gt;statefile);</span></div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; file = g_file_new_for_path(remminafile-&gt;statefile);</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; file = g_file_new_for_path(remminafile-&gt;filename);</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; info = g_file_query_info(file,</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; G_FILE_ATTRIBUTE_TIME_MODIFIED,</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; G_FILE_QUERY_INFO_NONE,</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; NULL,</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; NULL);</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; g_object_unref(file);</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">if</span> (info == NULL) {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="comment">//REMMINA_DEBUG(&quot;could not get time info&quot;);</span></div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="comment">// The BDAY &quot;Fri, 16 Oct 2009 07:04:46 GMT&quot;</span></div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; mtime = 1255676686;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keyword">const</span> gchar *last_success = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;last_success&quot;</span>);</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">if</span> (last_success) {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="comment">//REMMINA_DEBUG (&quot;Last success is %s&quot;, last_success);</span></div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; GDateTime *dt;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; tmps = g_strconcat(last_success, <span class="stringliteral">&quot;T00:00:00Z&quot;</span>, NULL);</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; dt = g_date_time_new_from_iso8601(tmps, NULL);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; g_free(tmps);</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keywordflow">if</span> (dt) {</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="comment">//REMMINA_DEBUG(&quot;Converting last_success&quot;);</span></div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; tmps = g_date_time_format(dt, <span class="stringliteral">&quot;%s&quot;</span>);</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; mtime = g_ascii_strtoull(tmps, NULL, 10);</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; g_free(tmps);</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; g_date_time_unref(dt);</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="comment">//REMMINA_DEBUG(&quot;dt was null&quot;);</span></div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; mtime = 191543400;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; }</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; }</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; mtime = g_file_info_get_attribute_uint64(info, G_FILE_ATTRIBUTE_TIME_MODIFIED);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; g_object_unref(info);</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; }</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; tv.tv_sec = mtime;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; ptm = localtime(&amp;tv.tv_sec);</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; strftime(time_string, <span class="keyword">sizeof</span>(time_string), <span class="stringliteral">&quot;%F - %T&quot;</span>, ptm);</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; gchar *modtime_string = g_locale_to_utf8(time_string, -1, NULL, NULL, NULL);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keywordflow">return</span> modtime_string;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;}</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01105"></a><span class="lineno"><a class="line" href="remmina__file_8h.html#a3d19095f74e9b7c92d74f11bd5a39a8c"> 1105</a></span>&#160;<a class="code" href="remmina__file_8c.html#a3d19095f74e9b7c92d74f11bd5a39a8c">remmina_file_touch</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;{</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordtype">int</span> fd;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keyword">struct </span>stat st;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keywordtype">int</span> r;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keywordflow">if</span> ((r = stat(remminafile-&gt;statefile, &amp;st)) &lt; 0) {</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">if</span> (errno != ENOENT)</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;stat %s:&quot;</span>, remminafile-&gt;statefile);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!r) {</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="preprocessor">#ifdef __APPLE__</span></div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <a class="code" href="remmina__file_8c.html#a3793ec19ecbc8c8afc4d1dd8969f880d">times</a>[0] = st.st_atimespec;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <a class="code" href="remmina__file_8c.html#a3793ec19ecbc8c8afc4d1dd8969f880d">times</a>[1] = st.st_mtimespec;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <a class="code" href="remmina__file_8c.html#a3793ec19ecbc8c8afc4d1dd8969f880d">times</a>[0] = st.st_atim;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <a class="code" href="remmina__file_8c.html#a3793ec19ecbc8c8afc4d1dd8969f880d">times</a>[1] = st.st_mtim;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">if</span> (utimensat(AT_FDCWD, remminafile-&gt;statefile, <a class="code" href="remmina__file_8c.html#a3793ec19ecbc8c8afc4d1dd8969f880d">times</a>, 0) &lt; 0)</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;utimensat %s:&quot;</span>, remminafile-&gt;statefile);</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; }</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">if</span> ((fd = open(remminafile-&gt;statefile, O_CREAT | O_EXCL, 0644)) &lt; 0)</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;open %s:&quot;</span>, remminafile-&gt;statefile);</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; close(fd);</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <a class="code" href="remmina__file_8c.html#a3d19095f74e9b7c92d74f11bd5a39a8c">remmina_file_touch</a>(remminafile);</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;}</div><div class="ttc" id="remmina__file_8c_html_ac1cc2d7f827f7d64c7fd3edf10e9383e"><div class="ttname"><a href="remmina__file_8c.html#ac1cc2d7f827f7d64c7fd3edf10e9383e">remmina_file_load</a></div><div class="ttdeci">RemminaFile * remmina_file_load(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00350">remmina_file.c:350</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_af60b8edfa50563ae4c7593efc3deed55"><div class="ttname"><a href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a></div><div class="ttdeci">const gchar * remmina_plugin_manager_get_canonical_setting_name(const RemminaProtocolSetting *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00456">remmina_plugin_manager.c:456</a></div></div>
<div class="ttc" id="remmina__file_8c_html_abd2f06bf0a5ddcf7156e5ef7d0c8d4d7"><div class="ttname"><a href="remmina__file_8c.html#abd2f06bf0a5ddcf7156e5ef7d0c8d4d7">remmina_file_free</a></div><div class="ttdeci">void remmina_file_free(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00709">remmina_file.c:709</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_aef243c58b9e8c778232d5acb32c7729b"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a></div><div class="ttdeci">gboolean remmina_plugin_manager_is_encrypted_setting(RemminaProtocolPlugin *pp, const char *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00634">remmina_plugin_manager.c:634</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_aef243c58b9e8c778232d5acb32c7729b"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a></div><div class="ttdeci">gboolean remmina_plugin_manager_is_encrypted_setting(RemminaProtocolPlugin *pp, const char *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00636">remmina_plugin_manager.c:636</a></div></div>
<div class="ttc" id="remmina__sodium_8h_html"><div class="ttname"><a href="remmina__sodium_8h.html">remmina_sodium.h</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html"><div class="ttname"><a href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a8eb1b213d9d08c6ad13683ce05f4355e"><div class="ttname"><a href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a></div><div class="ttdeci">const gchar * remmina_file_get_string(RemminaFile *remminafile, const gchar *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00516">remmina_file.c:516</a></div></div>
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('remmina__file_8c_source.html','');});
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_ab48899087cc647f0f791ed0c459adc53aa57e81572c52d0ea2bbb8dd90b10651a"><div class="ttname"><a href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53aa57e81572c52d0ea2bbb8dd90b10651a">RM_ENC_MODE_SECRET</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00092">remmina_pref.h:92</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00609">remmina_plugin_manager.c:609</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00611">remmina_plugin_manager.c:611</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a2123e14795b104f5fe8d77a4b7847261"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">_RemminaSecretPlugin::is_service_available</a></div><div class="ttdeci">gboolean(* is_service_available)(struct _RemminaSecretPlugin *instance)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00144">plugin.h:144</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_abbe56963e94b1a131f3e6d9bcafce772"><div class="ttname"><a href="struct___remmina_secret_plugin.html#abbe56963e94b1a131f3e6d9bcafce772">_RemminaSecretPlugin::delete_password</a></div><div class="ttdeci">void(* delete_password)(struct _RemminaSecretPlugin *instance, RemminaFile *remminafile, const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00147">plugin.h:147</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a96abbfdc183d1e82fdffd6445d611ffe"><div class="ttname"><a href="remmina__file_8c.html#a96abbfdc183d1e82fdffd6445d611ffe">remmina_file_get_datetime</a></div><div class="ttdeci">gchar * remmina_file_get_datetime(RemminaFile *remminafile)</div><div class="ttdoc">Return the string date of the last time a Remmina state file has been modified. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l01031">remmina_file.c:1031</a></div></div>
@@ -147,9 +147,9 @@ $(document).ready(function(){initNavTree('remmina__file_8c_source.html','');});
<div class="ttc" id="remmina__file_8c_html_a3d19095f74e9b7c92d74f11bd5a39a8c"><div class="ttname"><a href="remmina__file_8c.html#a3d19095f74e9b7c92d74f11bd5a39a8c">remmina_file_touch</a></div><div class="ttdeci">void remmina_file_touch(RemminaFile *remminafile)</div><div class="ttdoc">Update the atime and mtime of a given filename. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l01105">remmina_file.c:1105</a></div></div>
<div class="ttc" id="remmina__file__manager_8c_html_ace1098aad45256ac0b0155cb042472e9"><div class="ttname"><a href="remmina__file__manager_8c.html#ace1098aad45256ac0b0155cb042472e9">cachedir</a></div><div class="ttdeci">static gchar * cachedir</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00052">remmina_file_manager.c:52</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a994425a04b78282ff40a05580cc9355c"><div class="ttname"><a href="struct___remmina_pref.html#a994425a04b78282ff40a05580cc9355c">_RemminaPref::list_refresh_workaround</a></div><div class="ttdeci">gboolean list_refresh_workaround</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00150">remmina_pref.h:150</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
<div class="ttc" id="remmina__masterthread__exec_8c_html_a14628c2470cac50e87916a70ea05c97d"><div class="ttname"><a href="remmina__masterthread__exec_8c.html#a14628c2470cac50e87916a70ea05c97d">remmina_masterthread_exec_and_wait</a></div><div class="ttdeci">void remmina_masterthread_exec_and_wait(RemminaMTExecData *d)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__masterthread__exec_8c_source.html#l00125">remmina_masterthread_exec.c:125</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a5e421ba636d34e21bba5ece463e98892"><div class="ttname"><a href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a></div><div class="ttdeci">RemminaFile * remmina_file_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00093">remmina_file.c:93</a></div></div>
<div class="ttc" id="rcw_8c_html_a29701ae152ba15f6d8921f395174d2df"><div class="ttname"><a href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a></div><div class="ttdeci">RemminaPref remmina_pref</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00079">rcw.c:79</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a788378c190a4ec0ebcf60c570f3b50d5"><div class="ttname"><a href="struct___remmina_pref.html#a788378c190a4ec0ebcf60c570f3b50d5">_RemminaPref::enc_mode</a></div><div class="ttdeci">gint enc_mode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00196">remmina_pref.h:196</a></div></div>
@@ -178,7 +178,7 @@ $(document).ready(function(){initNavTree('remmina__file_8c_source.html','');});
<div class="ttc" id="remmina__file_8c_html_adab087b7139756f029020a87a5438cfa"><div class="ttname"><a href="remmina__file_8c.html#adab087b7139756f029020a87a5438cfa">remmina_file_new_empty</a></div><div class="ttdeci">static RemminaFile * remmina_file_new_empty(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00076">remmina_file.c:76</a></div></div>
<div class="ttc" id="structremmina__masterthread__exec__data_html_ab3d58f7a9847ce04c9dcd3917910fdb1"><div class="ttname"><a href="structremmina__masterthread__exec__data.html#ab3d58f7a9847ce04c9dcd3917910fdb1">remmina_masterthread_exec_data::func</a></div><div class="ttdeci">enum remmina_masterthread_exec_data::@11 func</div></div>
<div class="ttc" id="remmina__pref_8h_html_ab48899087cc647f0f791ed0c459adc53ad5263951640011bc43bd8a31f67a9f8b"><div class="ttname"><a href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53ad5263951640011bc43bd8a31f67a9f8b">RM_ENC_MODE_SODIUM_MODERATE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00094">remmina_pref.h:94</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/public/remmina__file__editor_8c.html b/public/remmina__file__editor_8c.html
index c81fca126..23d8483b2 100644
--- a/public/remmina__file__editor_8c.html
+++ b/public/remmina__file__editor_8c.html
@@ -115,6 +115,8 @@ Functions</h2></td></tr>
<tr class="separator:aecbc005c39cdf4fab4779090f11a3556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ea3f796c3a46aeb01b2f13f4a3d40a9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a> (GtkToggleButton *togglebutton, <a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *gfe)</td></tr>
<tr class="separator:a5ea3f796c3a46aeb01b2f13f4a3d40a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3da83a35788891fa1fede4b063e1d0e6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6">remmina_file_editor_assistance_enabled_check_on_toggled</a> (GtkToggleButton *togglebutton, <a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *gfe)</td></tr>
+<tr class="separator:a3da83a35788891fa1fede4b063e1d0e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a7f3ce69255bf413ef8fa841af3d019"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a> (GtkToggleButton *togglebutton, <a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *gfe, <a class="el" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a> ssh_setting)</td></tr>
<tr class="separator:a8a7f3ce69255bf413ef8fa841af3d019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7edb004da0ecc48277c1b656f2649ae"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae">remmina_file_editor_create_server</a> (<a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *gfe, const <a class="el" href="types_8h.html#a41c04d02e6a15ad17be8065453cc4933">RemminaProtocolSetting</a> *setting, GtkWidget *grid, gint row)</td></tr>
@@ -127,6 +129,8 @@ Functions</h2></td></tr>
<tr class="separator:a51b9fe336d9068ffc488ef55adc9eac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afad358c6e3a5918416c6eb036157d8e5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5">remmina_file_editor_create_resolution</a> (<a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *gfe, const <a class="el" href="types_8h.html#a41c04d02e6a15ad17be8065453cc4933">RemminaProtocolSetting</a> *setting, GtkWidget *grid, gint row)</td></tr>
<tr class="separator:afad358c6e3a5918416c6eb036157d8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71dd793e231434cba784ae36be456586"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586">remmina_file_editor_create_assistance</a> (<a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *gfe, const <a class="el" href="types_8h.html#a41c04d02e6a15ad17be8065453cc4933">RemminaProtocolSetting</a> *setting, GtkWidget *grid, gint row)</td></tr>
+<tr class="separator:a71dd793e231434cba784ae36be456586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cec1e80676c945f10bf39aca671d0a0"><td class="memItemLeft" align="right" valign="top">static GtkWidget *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a> (<a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gint left, gint right, gchar *setting_name)</td></tr>
<tr class="separator:a8cec1e80676c945f10bf39aca671d0a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a072de27e64368581e8507d3b795bfbf4"><td class="memItemLeft" align="right" valign="top">static GtkWidget *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a> (<a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gchar *setting_name)</td></tr>
@@ -243,6 +247,44 @@ Variables</h2></td></tr>
</div>
</div>
+<a id="a3da83a35788891fa1fede4b063e1d0e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3da83a35788891fa1fede4b063e1d0e6">&#9670;&nbsp;</a></span>remmina_file_editor_assistance_enabled_check_on_toggled()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void remmina_file_editor_assistance_enabled_check_on_toggled </td>
+ <td>(</td>
+ <td class="paramtype">GtkToggleButton *&#160;</td>
+ <td class="paramname"><em>togglebutton</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *&#160;</td>
+ <td class="paramname"><em>gfe</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00375">375</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+
+</div>
+</div>
<a id="aa3acf0470349d706d15fa751e982fd05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3acf0470349d706d15fa751e982fd05">&#9670;&nbsp;</a></span>remmina_file_editor_browse_avahi()</h2>
@@ -277,7 +319,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00236">236</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00242">242</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -315,7 +357,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00525">525</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00552">552</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -353,7 +395,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00295">295</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00301">301</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -373,7 +415,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01869">1869</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01963">1963</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -401,7 +443,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00138">138</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00144">144</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -429,7 +471,57 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01297">1297</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01380">1380</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+
+</div>
+</div>
+<a id="a71dd793e231434cba784ae36be456586"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a71dd793e231434cba784ae36be456586">&#9670;&nbsp;</a></span>remmina_file_editor_create_assistance()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void remmina_file_editor_create_assistance </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a> *&#160;</td>
+ <td class="paramname"><em>gfe</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="types_8h.html#a41c04d02e6a15ad17be8065453cc4933">RemminaProtocolSetting</a> *&#160;</td>
+ <td class="paramname"><em>setting</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">GtkWidget *&#160;</td>
+ <td class="paramname"><em>grid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">gint&#160;</td>
+ <td class="paramname"><em>row</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00648">648</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -457,7 +549,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01074">1074</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01157">1157</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -525,7 +617,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00741">741</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00819">819</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -602,7 +694,7 @@ Variables</h2></td></tr>
<p>Create checkbox + gtk_file_chooser for open files and select folders. </p>
<p>The code is wrong, because if the checkbox is not active, the value should be set to NULL and remove it from the remmina file. The problem is that this function knows nothing about the remmina file. This should be rewritten in a more generic way Please use REMMINA_PROTOCOL_SETTING_TYPE_TEXT </p>
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00769">769</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00847">847</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -676,7 +768,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00718">718</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00796">796</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -756,7 +848,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00874">874</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00952">952</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -836,7 +928,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00832">832</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00910">910</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -864,7 +956,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00301">301</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00307">307</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -920,7 +1012,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00323">323</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00329">329</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -988,7 +1080,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00476">476</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00503">503</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1038,7 +1130,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00541">541</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00568">568</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1112,7 +1204,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00696">696</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00774">774</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1162,7 +1254,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00425">425</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00452">452</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1206,7 +1298,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00919">919</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00997">997</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1244,7 +1336,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01129">1129</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01212">1212</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1312,7 +1404,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00654">654</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00732">732</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1392,7 +1484,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00620">620</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00698">698</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1460,7 +1552,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00663">663</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00741">741</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1498,7 +1590,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00287">287</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00293">293</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1546,7 +1638,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00821">821</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00899">899</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1584,7 +1676,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01879">1879</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01973">1973</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1604,7 +1696,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01896">1896</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01990">1990</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1632,7 +1724,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01804">1804</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01898">1898</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1680,7 +1772,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00807">807</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00885">885</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1724,7 +1816,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01847">1847</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01941">1941</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1744,7 +1836,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02039">2039</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02133">2133</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1764,7 +1856,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02059">2059</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02153">2153</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1784,7 +1876,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01910">1910</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02004">2004</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1804,7 +1896,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02078">2078</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02172">2172</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1834,7 +1926,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02045">2045</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02139">2139</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1872,7 +1964,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01798">1798</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01892">1892</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1910,7 +2002,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01749">1749</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01843">1843</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1948,7 +2040,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01691">1691</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01785">1785</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -1986,7 +2078,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00270">270</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00276">276</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2024,7 +2116,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01729">1729</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01823">1823</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2063,7 +2155,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>: Call remmina_file_editor_on_save </p>
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01771">1771</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01865">1865</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2101,7 +2193,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01334">1334</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01417">1417</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2129,7 +2221,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01378">1378</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01461">1461</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2157,7 +2249,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01392">1392</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01475">1475</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2214,7 +2306,7 @@ Variables</h2></td></tr>
TODO: when Remmina Editor's content is scrollable and failed_widget is not even visible anymore, the window gets shown where failed_widget would be if the Remmina Editor was big enough. <br />
TODO: Responsive text size and line wrap. </p>
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00158">158</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00164">164</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2258,7 +2350,7 @@ TODO: Responsive text size and line wrap. </p>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00368">368</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00395">395</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2296,7 +2388,7 @@ TODO: Responsive text size and line wrap. </p>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00359">359</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00365">365</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2334,7 +2426,7 @@ TODO: Responsive text size and line wrap. </p>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01636">1636</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01719">1719</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2372,7 +2464,7 @@ TODO: Responsive text size and line wrap. </p>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00513">513</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l00540">540</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2410,7 +2502,7 @@ TODO: Responsive text size and line wrap. </p>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01531">1531</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01614">1614</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2460,7 +2552,7 @@ TODO: Responsive text size and line wrap. </p>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01453">1453</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01536">1536</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -2486,7 +2578,7 @@ TODO: Responsive text size and line wrap. </p>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH identity file&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH agent&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;3&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Public key (automatic)&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;4&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Kerberos (GSSAPI)&quot;</span>),</div><div class="line"> NULL</div><div class="line">}</div><div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01118">1118</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01201">1201</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
diff --git a/public/remmina__file__editor_8c.js b/public/remmina__file__editor_8c.js
index 106f9468b..afd280174 100644
--- a/public/remmina__file__editor_8c.js
+++ b/public/remmina__file__editor_8c.js
@@ -1,12 +1,14 @@
var remmina__file__editor_8c =
[
[ "G_DEFINE_TYPE", "remmina__file__editor_8c.html#abb7466f51c11427405a54c94767a52de", null ],
+ [ "remmina_file_editor_assistance_enabled_check_on_toggled", "remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6", null ],
[ "remmina_file_editor_browse_avahi", "remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05", null ],
[ "remmina_file_editor_browse_resolution", "remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4", null ],
[ "remmina_file_editor_button_on_toggled", "remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb", null ],
[ "remmina_file_editor_check_profile", "remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257", null ],
[ "remmina_file_editor_class_init", "remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b", null ],
[ "remmina_file_editor_create_all_settings", "remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38", null ],
+ [ "remmina_file_editor_create_assistance", "remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586", null ],
[ "remmina_file_editor_create_behavior_tab", "remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c", null ],
[ "remmina_file_editor_create_check", "remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6", null ],
[ "remmina_file_editor_create_chooser", "remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa", null ],
diff --git a/public/remmina__file__editor_8c_source.html b/public/remmina__file__editor_8c_source.html
index 482957323..ddf136034 100644
--- a/public/remmina__file__editor_8c_source.html
+++ b/public/remmina__file__editor_8c_source.html
@@ -86,7 +86,7 @@ $(document).ready(function(){initNavTree('remmina__file__editor_8c_source.html',
<div class="title">remmina_file_editor.c</div> </div>
</div><!--header-->
<div class="contents">
-<a href="remmina__file__editor_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2009-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;ctype.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;config.h&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBAVAHI_UI</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;avahi-ui/avahi-ui.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rcw_8h.html">rcw.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file_8h.html">remmina_file.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__editor_8h.html">remmina_file_editor.h</a>&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__manager_8h.html">remmina_file_manager.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__icon_8h.html">remmina_icon.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__main_8h.html">remmina_main.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a>&quot;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref__dialog_8h.html">remmina_pref_dialog.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__ssh_8h.html">remmina_ssh.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__string__list_8h.html">remmina_string_list.h</a>&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__unlock_8h.html">remmina_unlock.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#abb7466f51c11427405a54c94767a52de"> 58</a></span>&#160;<a class="code" href="remmina__file__editor_8c.html#abb7466f51c11427405a54c94767a52de">G_DEFINE_TYPE</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a>, remmina_file_editor, GTK_TYPE_DIALOG)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *server_tips = <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;big&gt;&quot;</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="stringliteral">&quot;Supported formats\n&quot;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="stringliteral">&quot;• server\n&quot;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="stringliteral">&quot;• server[:port]\n&quot;</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="stringliteral">&quot;VNC additional formats\n&quot;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="stringliteral">&quot;• ID:repeater ID number\n&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="stringliteral">&quot;• unix:///path/socket.sock&quot;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="stringliteral">&quot;&lt;/big&gt;&quot;</span>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *cmd_tips = <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;big&gt;&quot;</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="stringliteral">&quot;• command in PATH args %h\n&quot;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="stringliteral">&quot;• /path/to/foo -options %h %u\n&quot;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="stringliteral">&quot;• %h is substituted with the server name\n&quot;</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="stringliteral">&quot;• %t is substituted with the SSH server name\n&quot;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="stringliteral">&quot;• %u is substituted with the username\n&quot;</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="stringliteral">&quot;• %U is substituted with the SSH username\n&quot;</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="stringliteral">&quot;• %p is substituted with Remmina profile name\n&quot;</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="stringliteral">&quot;• %g is substituted with Remmina profile group name\n&quot;</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="stringliteral">&quot;• %d is substituted with local date and time in ISO 8601 format\n&quot;</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="stringliteral">&quot;Do not run in background if you want the command to be executed before connecting.\n&quot;</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="stringliteral">&quot;&lt;/big&gt;&quot;</span>);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *server_tips2 = <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;big&gt;&quot;</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="stringliteral">&quot;Supported formats\n&quot;</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="stringliteral">&quot;• server\n&quot;</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="stringliteral">&quot;• server[:port]\n&quot;</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="stringliteral">&quot;• username@server[:port] (SSH protocol only)&quot;</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="stringliteral">&quot;&lt;/big&gt;&quot;</span>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">struct </span>_RemminaFileEditorPriv {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> * remmina_file;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> * plugin;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> gchar * avahi_service_type;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GtkWidget * name_entry;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GtkWidget * labels_entry;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GtkWidget * group_combo;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GtkWidget * protocol_combo;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GtkWidget * save_button;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GtkWidget * config_box;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GtkWidget * config_scrollable;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GtkWidget * config_viewport;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GtkWidget * config_container;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GtkWidget * server_combo;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GtkWidget * resolution_iws_radio;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GtkWidget * resolution_auto_radio;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GtkWidget * resolution_custom_radio;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GtkWidget * resolution_custom_combo;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GtkWidget * keymap_combo;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GtkWidget * behavior_autostart_check;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GtkWidget * behavior_precommand_entry;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GtkWidget * behavior_postcommand_entry;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GtkWidget * behavior_lock_check;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GtkWidget * ssh_tunnel_enabled_check;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GtkWidget * ssh_tunnel_loopback_check;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GtkWidget * ssh_tunnel_server_default_radio;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GtkWidget * ssh_tunnel_server_custom_radio;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GtkWidget * ssh_tunnel_server_entry;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GtkWidget * ssh_tunnel_auth_agent_radio;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GtkWidget * ssh_tunnel_auth_password_radio;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GtkWidget * ssh_tunnel_auth_password;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GtkWidget * ssh_tunnel_passphrase;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GtkWidget * ssh_tunnel_auth_publickey_radio;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GtkWidget * ssh_tunnel_auth_auto_publickey_radio;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GtkWidget * ssh_tunnel_auth_combo;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GtkWidget * ssh_tunnel_username_entry;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GtkWidget * ssh_tunnel_privatekey_chooser;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GtkWidget * ssh_tunnel_certfile_chooser;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GHashTable * setting_widgets;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;};</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b"> 138</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b">remmina_file_editor_class_init</a>(<a class="code" href="struct___remmina_file_editor_class.html">RemminaFileEditorClass</a> *klass)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11"> 158</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> * gfe,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GtkWidget * failed_widget,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GError * err)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (!err) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; err = NULL; <span class="comment">// g_set_error doesn&#39;t like overwriting errors.</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; g_set_error(&amp;err, 1, 1, _(<span class="stringliteral">&quot;Input is invalid.&quot;</span>));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span> (!gfe || !failed_widget) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; g_critical(<span class="stringliteral">&quot;(%s): Parameters RemminaFileEditor &#39;gfe&#39; or &quot;</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="stringliteral">&quot;GtkWidget* &#39;failed_widget&#39; are &#39;NULL&#39;!&quot;</span>,</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; __func__);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; gint widget_width = gtk_widget_get_allocated_width(failed_widget);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; gint widget_height = gtk_widget_get_allocated_height(failed_widget);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GtkWidget *err_label = gtk_label_new(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GtkWidget *alert_icon = NULL;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GtkWindow *err_window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GdkWindow *window = gtk_widget_get_window(failed_widget);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GtkAllocation allocation;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; gint failed_widget_x, failed_widget_y;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; gchar *markup = g_strdup_printf(<span class="stringliteral">&quot;&lt;span size=&#39;large&#39;&gt;%s&lt;/span&gt;&quot;</span>, err-&gt;message);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// Setup err_window</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; gtk_window_set_decorated(err_window, FALSE);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; gtk_window_set_type_hint(err_window, GDK_WINDOW_TYPE_HINT_TOOLTIP);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; gtk_window_set_default_size(err_window, widget_width, widget_height);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; gtk_window_set_title(err_window, <span class="stringliteral">&quot;Error&quot;</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; gtk_window_set_resizable(err_window, TRUE);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// Move err_window under failed_widget</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; gtk_window_set_attached_to(err_window, failed_widget);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; gtk_window_set_transient_for(err_window, GTK_WINDOW(gfe));</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; gdk_window_get_origin(GDK_WINDOW(window), &amp;failed_widget_x, &amp;failed_widget_y);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; gtk_widget_get_allocation(failed_widget, &amp;allocation);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; failed_widget_x += allocation.x;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; failed_widget_y += allocation.y + allocation.height;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; gtk_window_move(err_window, failed_widget_x, failed_widget_y);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// Setup label</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; gtk_label_set_selectable(GTK_LABEL(err_label), FALSE);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; gtk_label_set_max_width_chars(GTK_LABEL(err_label), 1);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; gtk_widget_set_hexpand(GTK_WIDGET(err_label), TRUE);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; gtk_widget_set_vexpand(GTK_WIDGET(err_label), TRUE);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; gtk_label_set_ellipsize(GTK_LABEL(err_label), PANGO_ELLIPSIZE_END);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; gtk_label_set_line_wrap(GTK_LABEL(err_label), TRUE);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; gtk_label_set_line_wrap_mode(GTK_LABEL(err_label), PANGO_WRAP_WORD_CHAR);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; gtk_label_set_markup(GTK_LABEL(err_label), markup);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; alert_icon = gtk_image_new_from_icon_name(<span class="stringliteral">&quot;dialog-warning-symbolic&quot;</span>,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; GTK_ICON_SIZE_DND);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// Fill icon and label into a box.</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(alert_icon), FALSE, FALSE, 0);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(err_label), TRUE, TRUE, 5);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">// Attach box to err_window</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; gtk_container_add(GTK_CONTAINER(err_window), GTK_WIDGET(box));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// Display everything.</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; gtk_widget_show_all(GTK_WIDGET(err_window));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// Mouse click and focus-loss will delete the err_window.</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; g_signal_connect(G_OBJECT(err_window), <span class="stringliteral">&quot;focus-out-event&quot;</span>,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; G_CALLBACK(gtk_window_close), NULL);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; g_signal_connect(G_OBJECT(err_window), <span class="stringliteral">&quot;button-press-event&quot;</span>,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; G_CALLBACK(gtk_window_close), NULL);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;}</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBAVAHI_UI</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05"> 236</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05">remmina_file_editor_browse_avahi</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;{</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; GtkWidget *dialog;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; gchar *host;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; dialog = aui_service_dialog_new(_(<span class="stringliteral">&quot;Choose a Remote Desktop Server&quot;</span>),</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; GTK_WINDOW(gfe),</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; _(<span class="stringliteral">&quot;_Cancel&quot;</span>), GTK_RESPONSE_CANCEL,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; _(<span class="stringliteral">&quot;_OK&quot;</span>), GTK_RESPONSE_ACCEPT,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; NULL);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(gfe));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; aui_service_dialog_set_resolve_service(AUI_SERVICE_DIALOG(dialog), TRUE);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; aui_service_dialog_set_resolve_host_name(AUI_SERVICE_DIALOG(dialog), TRUE);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; aui_service_dialog_set_browse_service_types(AUI_SERVICE_DIALOG(dialog),</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;avahi_service_type, NULL);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span> (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; host = g_strdup_printf(<span class="stringliteral">&quot;[%s]:%i&quot;</span>,</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; aui_service_dialog_get_host_name(AUI_SERVICE_DIALOG(dialog)),</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; aui_service_dialog_get_port(AUI_SERVICE_DIALOG(dialog)));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; host = NULL;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; gtk_widget_destroy(dialog);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (host) {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;server_combo))), host);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; g_free(host);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b"> 270</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b">remmina_file_editor_on_realize</a>(GtkWidget *widget, gpointer user_data)</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;{</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; GtkWidget *defaultwidget;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; gfe = REMMINA_FILE_EDITOR(widget);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; defaultwidget = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;server_combo;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span> (defaultwidget) {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (GTK_IS_EDITABLE(defaultwidget))</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; gtk_editable_select_region(GTK_EDITABLE(defaultwidget), 0, -1);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; gtk_widget_grab_focus(defaultwidget);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f"> 287</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f">remmina_file_editor_destroy</a>(GtkWidget *widget, gpointer data)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;{</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="remmina__file_8c.html#abd2f06bf0a5ddcf7156e5ef7d0c8d4d7">remmina_file_free</a>(REMMINA_FILE_EDITOR(widget)-&gt;priv-&gt;remmina_file);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; g_hash_table_destroy(REMMINA_FILE_EDITOR(widget)-&gt;priv-&gt;setting_widgets);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; g_free(REMMINA_FILE_EDITOR(widget)-&gt;priv);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;}</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb"> 295</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a>(GtkToggleButton *togglebutton, GtkWidget *widget)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;{</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; gtk_widget_set_sensitive(widget, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(togglebutton)));</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea"> 301</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea">remmina_file_editor_create_notebook_container</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;{</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">/* Create the notebook */</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container = gtk_notebook_new();</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport = gtk_viewport_new(NULL, NULL);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable = gtk_scrolled_window_new(NULL, NULL);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable), 2);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable),</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; gtk_widget_show(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; gtk_container_add(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport), gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport), 2);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; gtk_widget_show(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; gtk_container_add(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable), gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container), 2);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; gtk_widget_show(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; gtk_container_add(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_box), gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;}</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556"> 323</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe,</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">const</span> gchar *stock_id, <span class="keyword">const</span> gchar *label, gint rows, gint cols)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; GtkWidget *tablabel;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; GtkWidget *tabbody;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; tablabel = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; gtk_widget_show(tablabel);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; widget = gtk_image_new_from_icon_name(stock_id, GTK_ICON_SIZE_BUTTON);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; gtk_box_pack_start(GTK_BOX(tablabel), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; gtk_box_pack_start(GTK_BOX(tablabel), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; tabbody = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; gtk_widget_show(tabbody);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; gtk_notebook_append_page(GTK_NOTEBOOK(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container), tabbody, tablabel);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; grid = gtk_grid_new();</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; gtk_widget_show(grid);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; gtk_grid_set_row_spacing(GTK_GRID(grid), 8);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; gtk_grid_set_column_spacing(GTK_GRID(grid), 8);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(grid), 15);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; gtk_box_pack_start(GTK_BOX(tabbody), grid, FALSE, FALSE, 0);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">return</span> grid;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;}</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9"> 359</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a>(GtkToggleButton *togglebutton, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;{</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_entry),</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_enabled_check)) &amp;&amp;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_custom_radio == NULL ||</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_custom_radio))));</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;}</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019"> 368</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a>(GtkToggleButton *togglebutton,</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a> ssh_setting)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;{</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; gboolean enabled = TRUE;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; gchar *p;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">const</span> gchar *cp;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">const</span> gchar *s = NULL;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_enabled_check) {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_enabled_check));</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_loopback_check)</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_loopback_check), enabled);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_default_radio)</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_default_radio), enabled);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_custom_radio)</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_custom_radio), enabled);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a>(NULL, gfe);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; p = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;protocol_combo));</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// if (!(g_strcmp0(p, &quot;SFTP&quot;) == 0 || g_strcmp0(p, &quot;SSH&quot;) == 0)) {</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_username_entry), enabled);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_password), enabled);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_combo), enabled);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; g_free(p);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// remmina_file_editor_ssh_tunnel_auth_publickey_radio_on_toggled(NULL, gfe);</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; s = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span> (s)</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_privatekey_chooser), s);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; s = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span> (s)</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_certfile_chooser), s);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_username_entry)</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">if</span> (enabled &amp;&amp; gtk_entry_get_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_username_entry))[0] == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; cp = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_username&quot;</span>);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; gtk_entry_set_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_username_entry), cp ? cp : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_password) {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span> (enabled &amp;&amp; gtk_entry_get_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_password))[0] == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; cp = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; gtk_entry_set_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_password), cp ? cp : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_passphrase) {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> (enabled &amp;&amp; gtk_entry_get_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_passphrase))[0] == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; cp = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_passphrase&quot;</span>);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; gtk_entry_set_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_passphrase), cp ? cp : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;}</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae"> 425</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae">remmina_file_editor_create_server</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting, GtkWidget *grid,</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; gint row)</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *plugin = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;plugin;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBAVAHI_UI</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; GtkWidget *hbox;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; gchar *s;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Server&quot;</span>));</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, row + 1);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; s = <a class="code" href="remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05">remmina_pref_get_recent</a>(plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">name</a>);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; widget = <a class="code" href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public_create_combo_entry</a>(s, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;server&quot;</span>), TRUE);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; gtk_widget_set_tooltip_markup(widget, _(server_tips));</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; gtk_entry_set_activates_default(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(widget))), TRUE);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;server_combo = widget;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; g_free(s);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBAVAHI_UI</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>) {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;avahi_service_type = (<span class="keyword">const</span> gchar *)setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; gtk_widget_show(hbox);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; widget = gtk_button_new_with_label(<span class="stringliteral">&quot;…&quot;</span>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; s = g_strdup_printf(_(<span class="stringliteral">&quot;Browse the network to find a %s server&quot;</span>), plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">name</a>);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; gtk_widget_set_tooltip_text(widget, s);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; g_free(s);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05">remmina_file_editor_browse_avahi</a>), gfe);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; gtk_grid_attach(GTK_GRID(grid), hbox, 1, row, 1, 1);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 1, 1);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;}</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583"> 476</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583">remmina_file_editor_create_password</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid, gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *value, gchar *setting_name)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 12, 0)</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; gtk_widget_set_margin_end(widget, 40);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; gtk_widget_set_margin_right(widget, 40);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 1, 1);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 0);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; gtk_entry_set_activates_default(GTK_ENTRY(widget), TRUE);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), value);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">/* Password view Toogle*/</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span> (setting_name) {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widget), GTK_ENTRY_ICON_SECONDARY, <span class="stringliteral">&quot;org.remmina.Remmina-password-reveal-symbolic&quot;</span>);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; gtk_entry_set_icon_activatable(GTK_ENTRY(widget), GTK_ENTRY_ICON_SECONDARY, TRUE);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; g_signal_connect(widget, <span class="stringliteral">&quot;icon-press&quot;</span>, G_CALLBACK(<a class="code" href="remmina__main_8c.html#aac3fe305e456dfa7bb55aa2f057e8cb0">remmina_main_toggle_password_view</a>), NULL);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;}</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a"> 513</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a">remmina_file_editor_update_resolution</a>(GtkWidget *widget, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;{</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; gchar *res_str;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; res_str = g_strdup_printf(<span class="stringliteral">&quot;%dx%d&quot;</span>,</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_width&quot;</span>, 0),</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_height&quot;</span>, 0));</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <a class="code" href="remmina__public_8c.html#aa5eacff7c9dab7457dd65525d01047f8">remmina_public_load_combo_text_d</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_combo, <a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a>,</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; res_str, NULL);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; g_free(res_str);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;}</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4"> 525</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4">remmina_file_editor_browse_resolution</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;{</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; GtkDialog *dialog = <a class="code" href="remmina__string__list_8c.html#a11147c41297537effe55f18a63ce9f7e">remmina_string_list_new</a>(FALSE, NULL);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="remmina__string__list_8c.html#a500b85eafd23280f998d2980d1eba80e">remmina_string_list_set_validation_func</a>(<a class="code" href="remmina__public_8c.html#a098786d3aa6991aeba43a61e29d534d0">remmina_public_resolution_validation_func</a>);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="remmina__string__list_8c.html#ab1bacc097f59c20b477d954bb863a5e0">remmina_string_list_set_text</a>(<a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a>, TRUE);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="remmina__string__list_8c.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list_set_titles</a>(_(<span class="stringliteral">&quot;Resolutions&quot;</span>), _(<span class="stringliteral">&quot;Configure the available resolutions&quot;</span>));</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(gfe));</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; gtk_dialog_run(dialog);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; g_free(<a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a>);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a> = <a class="code" href="remmina__string__list_8c.html#a74058eac0af28c05a55d041103457aec">remmina_string_list_get_text</a>();</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; g_signal_connect(G_OBJECT(dialog), <span class="stringliteral">&quot;destroy&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a">remmina_file_editor_update_resolution</a>), gfe);</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;}</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5"> 541</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5">remmina_file_editor_create_resolution</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting,</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; GtkWidget *grid, gint row)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;{</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; GtkWidget *hbox;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordtype">int</span> resolution_w, resolution_h;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; gchar *res_str;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a> res_mode;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; res_mode = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_mode&quot;</span>, <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a>);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; resolution_w = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_width&quot;</span>, -1);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; resolution_h = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_height&quot;</span>, -1);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="comment">/* If resolution_mode is non-existent (-1), then we try to calculate it</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment"> * as we did before having resolution_mode */</span></div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">if</span> (res_mode == <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a>) {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">if</span> (resolution_w &lt;= 0 || resolution_h &lt;= 0)</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a>;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span> (res_mode == <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a>)</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; res_str = g_strdup_printf(<span class="stringliteral">&quot;%dx%d&quot;</span>, resolution_w, resolution_h);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; res_str = NULL;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Resolution&quot;</span>));</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; widget = gtk_radio_button_new_with_label(NULL, _(<span class="stringliteral">&quot;Use initial window size&quot;</span>));</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_iws_radio = widget;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; widget = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_iws_radio), _(<span class="stringliteral">&quot;Use client resolution&quot;</span>));</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_auto_radio = widget;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; gtk_grid_attach(GTK_GRID(grid), hbox, 1, row, 1, 1);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; gtk_widget_show(hbox);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; gtk_widget_show(hbox);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; gtk_grid_attach(GTK_GRID(grid), hbox, 1, row + 1, 1, 1);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; widget = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_iws_radio), _(<span class="stringliteral">&quot;Custom&quot;</span>));</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_radio = widget;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; widget = <a class="code" href="remmina__public_8c.html#a3796b536244067e9a85923b1cefa6cde">remmina_public_create_combo_text_d</a>(<a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a>, res_str, NULL);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_combo = widget;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; widget = gtk_button_new_with_label(<span class="stringliteral">&quot;…&quot;</span>);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4">remmina_file_editor_browse_resolution</a>), gfe);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; g_signal_connect(G_OBJECT(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_radio), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a>), gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_combo);</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">if</span> (res_mode == <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a>)</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_radio), TRUE);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (res_mode == <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a>)</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_auto_radio), TRUE);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_iws_radio), TRUE);</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; gtk_widget_set_sensitive(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_combo, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_radio)));</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; g_free(res_str);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;}</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div><div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0"> 620</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *value, gint left,</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; gint right, gchar *setting_name)</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;{</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 12, 0)</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; gtk_widget_set_margin_start(widget, left);</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; gtk_widget_set_margin_end(widget, right);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; gtk_widget_set_margin_left(widget, left);</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; gtk_widget_set_margin_right(widget, right);</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col, row, 1, 1);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col + 1, row, 1, 1);</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 300);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), value);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;}</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4"> 654</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *value,</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; gchar *setting_name)</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;{</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a>(gfe, grid, row, col, label, value, 0, 40,</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; setting_name);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;}</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7"> 663</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7">remmina_file_editor_create_textarea</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *value,</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; gchar *setting_name)</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;{</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; GtkTextView *view;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; GtkTextBuffer *buffer;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; GtkTextIter start;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; widget = gtk_text_view_new();</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; view = GTK_TEXT_VIEW(widget);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; gtk_text_view_set_top_margin(GTK_TEXT_VIEW(view), 20);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; gtk_text_view_set_bottom_margin(GTK_TEXT_VIEW(view), 20);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; gtk_text_view_set_left_margin(GTK_TEXT_VIEW(view), 20);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; gtk_text_view_set_right_margin(GTK_TEXT_VIEW(view), 20);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; gtk_text_view_set_monospace(view, TRUE);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">if</span> (value) {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; buffer = gtk_text_view_get_buffer(view);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; gtk_text_buffer_set_text(buffer, value, -1);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; gtk_text_buffer_get_start_iter(buffer, &amp;start);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; gtk_text_buffer_place_cursor(buffer, &amp;start);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; }</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; gtk_widget_set_size_request(GTK_WIDGET(view), 320, 300);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;}</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a"> 696</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gpointer *list,</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keyword">const</span> gchar *value, gchar *setting_name)</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;{</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; widget = <a class="code" href="remmina__public_8c.html#a616258d3226ec1f1ecee6ce18aba535b">remmina_public_create_combo_map</a>(list, value, FALSE, gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;plugin-&gt;domain);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 1, 1);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;}</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965"> 718</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965">remmina_file_editor_create_combo</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *list,</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keyword">const</span> gchar *value, gchar *setting_name)</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;{</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; widget = <a class="code" href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public_create_combo_entry</a>(list, value, FALSE);</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 1, 1);</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;}</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6"> 741</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; gint row, gint top, <span class="keyword">const</span> gchar *label, gboolean value,</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; gchar *setting_name)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;{</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; widget = gtk_check_button_new_with_label(label);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, top, row, 1, 1);</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;}</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="keyword">static</span> GtkWidget *</div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa"> 769</a></span>&#160;<a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid, gint row, gint col, <span class="keyword">const</span> gchar *label,</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keyword">const</span> gchar *value, gint type, gchar *setting_name)</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;{</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; GtkWidget *check;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; GtkWidget *hbox;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; gtk_widget_show(hbox);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; gtk_grid_attach(GTK_GRID(grid), hbox, 1, row, 1, 1);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; check = gtk_check_button_new();</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; gtk_widget_show(check);</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), (value &amp;&amp; value[0] == <span class="charliteral">&#39;/&#39;</span>));</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), check, FALSE, FALSE, 0);</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; widget = gtk_file_chooser_button_new(label, type);</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(widget), value);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; g_signal_connect(G_OBJECT(check), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a>), widget);</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a>(GTK_TOGGLE_BUTTON(check), widget);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;}</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="comment">// used to filter out invalid characters for REMMINA_PROTOCOL_SETTING_TYPE_INT</span></div><div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0"> 807</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0">remmina_file_editor_int_setting_filter</a>(GtkEditable *editable, <span class="keyword">const</span> gchar *text,</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; gint length, gint *position, gpointer data)</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;{</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; length; i++) {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">if</span> (!isdigit(text[i]) &amp;&amp; text[i] != <span class="charliteral">&#39;-&#39;</span>) {</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; g_signal_stop_emission_by_name(G_OBJECT(editable), <span class="stringliteral">&quot;insert-text&quot;</span>);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; }</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; }</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;}</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="comment">// used to filter out invalid characters for REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</span></div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="comment">// &#39;.&#39; and &#39;,&#39; can&#39;t be used interchangeably! It depends on the language setting</span></div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="comment">// of the user.</span></div><div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f"> 821</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f">remmina_file_editor_double_setting_filter</a>(GtkEditable *editable, <span class="keyword">const</span> gchar *text,</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; gint length, gint *position, gpointer data)</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;{</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; length; i++) {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">if</span> (!isdigit(text[i]) &amp;&amp; text[i] != <span class="charliteral">&#39;-&#39;</span> &amp;&amp; text[i] != <span class="charliteral">&#39;.&#39;</span> &amp;&amp; text[i] != <span class="charliteral">&#39;,&#39;</span>) {</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; g_signal_stop_emission_by_name(G_OBJECT(editable), <span class="stringliteral">&quot;insert-text&quot;</span>);</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; }</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;}</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0"> 832</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0">remmina_file_editor_create_int</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gint value,</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; gint left, gint right, gchar *setting_name)</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;{</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 12, 0)</span></div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; gtk_widget_set_margin_start(widget, left);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; gtk_widget_set_margin_end(widget, right);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; gtk_widget_set_margin_left(widget, left);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; gtk_widget_set_margin_right(widget, right);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col, row, 1, 1);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col + 1, row, 1, 1);</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 300);</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="comment">// Convert int to str.</span></div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordtype">int</span> length = snprintf(NULL, 0, <span class="stringliteral">&quot;%d&quot;</span>, value) + 1; <span class="comment">// +1 &#39;\0&#39; byte</span></div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordtype">char</span> *str = malloc(length);</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; snprintf(str, length, <span class="stringliteral">&quot;%d&quot;</span>, value);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), str);</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; free(str);</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;insert-text&quot;</span>,</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0">remmina_file_editor_int_setting_filter</a>), NULL);</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;}</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div><div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80"> 874</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80">remmina_file_editor_create_double</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe,</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; GtkWidget *grid, gint row, gint col,</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keyword">const</span> gchar *label, gdouble value, gint left,</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; gint right, gchar *setting_name)</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;{</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 12, 0)</span></div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; gtk_widget_set_margin_start(widget, left);</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; gtk_widget_set_margin_end(widget, right);</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; gtk_widget_set_margin_left(widget, left);</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; gtk_widget_set_margin_right(widget, right);</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col, row, 1, 1);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col + 1, row, 1, 1);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 300);</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="comment">// Convert double to str.</span></div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordtype">int</span> length = snprintf(NULL, 0, <span class="stringliteral">&quot;%.8g&quot;</span>, value) + 1; <span class="comment">// +1 &#39;\0&#39; byte</span></div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordtype">char</span> *str = malloc(length);</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; snprintf(str, length, <span class="stringliteral">&quot;%f&quot;</span>, value);</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), str);</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; free(str);</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;insert-text&quot;</span>,</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f">remmina_file_editor_double_setting_filter</a>), NULL);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;}</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d"> 919</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *settings)</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;{</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; gint grid_row = 0;</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; gint grid_column = 0;</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; gchar **strarr;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; gchar *setting_name;</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keyword">const</span> gchar *escaped;</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">while</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; setting_name = (gchar *)(<a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(settings));</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">switch</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a>) {</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>:</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <a class="code" href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae">remmina_file_editor_create_server</a>(gfe, settings, grid, grid_row);</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>:</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583">remmina_file_editor_create_password</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; setting_name);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; grid_row++;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>:</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <a class="code" href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5">remmina_file_editor_create_resolution</a>(gfe, settings, grid, grid_row);</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; grid_row += 1;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>:</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; strarr = <a class="code" href="remmina__pref_8c.html#a745bbef1d48a7462f8db997821742395">remmina_pref_keymap_groups</a>();</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; priv-&gt;keymap_combo = <a class="code" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a>(gfe, grid,</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; grid_row + 1, 0,</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; _(<span class="stringliteral">&quot;Keyboard mapping&quot;</span>), (<span class="keyword">const</span> gpointer *)strarr,</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;keymap&quot;</span>),</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; setting_name);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; g_strfreev(strarr);</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; grid_row++;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>:</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; setting_name);</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; grid_row++;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a>:</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; escaped = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; escaped = g_uri_unescape_string(escaped, NULL);</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7">remmina_file_editor_create_textarea</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>), escaped,</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; setting_name);</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; grid_row++;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>:</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; (<span class="keyword">const</span> gpointer *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>,</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; setting_name);</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>:</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965">remmina_file_editor_create_combo</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; (<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>,</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; setting_name);</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>:</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a>(gfe, grid, grid_row, grid_column,</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, setting_name, FALSE),</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; setting_name);</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>:</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; GTK_FILE_CHOOSER_ACTION_OPEN, setting_name);</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a>:</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; setting_name);</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a>:</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0">remmina_file_editor_create_int</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, setting_name, 0),</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; 0, 40, setting_name);</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; grid_row++;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a>:</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80">remmina_file_editor_create_double</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <a class="code" href="remmina__file_8c.html#a4e31f91e2398f16844f58c1cf13582da">remmina_file_get_double</a>(priv-&gt;remmina_file, setting_name, 0.0f),</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; 0, 40, setting_name);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; grid_row++;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; }</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="comment">/* If the setting wants compactness, move to the next column */</span></div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">compact</a>)</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; grid_column++;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="comment">/* Add a new settings row and move to the first column</span></div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment"> * if the setting doesn’t want the compactness</span></div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="comment"> * or we already have two columns */</span></div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">if</span> (!settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">compact</a> || grid_column &gt; 1) {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; grid_row++;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; grid_column = 0;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; }</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; settings++;</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; }</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;}</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c"> 1074</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c">remmina_file_editor_create_behavior_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;{</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keyword">const</span> gchar *cs;</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="comment">/* The Behavior tab (implementation) */</span></div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL, _(<span class="stringliteral">&quot;Behavior&quot;</span>), 20, 2);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="comment">/* Execute Command frame */</span></div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <a class="code" href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a>(GTK_GRID(grid), _(<span class="stringliteral">&quot;Execute a Command&quot;</span>), 0, 1, 2);</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; <span class="comment">/* PRE connection command */</span></div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;precommand&quot;</span>);</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a>(gfe, grid, 2, 0, _(<span class="stringliteral">&quot;Before connecting&quot;</span>), cs, 24, 26, <span class="stringliteral">&quot;precommand&quot;</span>);</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; priv-&gt;behavior_precommand_entry = widget;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; gtk_entry_set_placeholder_text(GTK_ENTRY(widget), _(<span class="stringliteral">&quot;command %h %u %t %U %p %g --option&quot;</span>));</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; gtk_widget_set_tooltip_markup(widget, _(cmd_tips));</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="comment">/* POST connection command */</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;postcommand&quot;</span>);</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a>(gfe, grid, 3, 0, _(<span class="stringliteral">&quot;After connecting&quot;</span>), cs, 24, 16, <span class="stringliteral">&quot;postcommand&quot;</span>);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; priv-&gt;behavior_postcommand_entry = widget;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; gtk_entry_set_placeholder_text(GTK_ENTRY(widget), _(<span class="stringliteral">&quot;/path/to/command -opt1 arg %h %u %t -opt2 %U %p %g&quot;</span>));</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; gtk_widget_set_tooltip_markup(widget, _(cmd_tips));</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="comment">/* Startup frame */</span></div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <a class="code" href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a>(GTK_GRID(grid), _(<span class="stringliteral">&quot;Start-up&quot;</span>), 4, 1, 2);</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="comment">/* Autostart profile option */</span></div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; priv-&gt;behavior_autostart_check = <a class="code" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a>(gfe, grid, 6, 1, _(<span class="stringliteral">&quot;Auto-start this profile&quot;</span>),</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;enable-autostart&quot;</span>, FALSE), <span class="stringliteral">&quot;enable-autostart&quot;</span>);</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="comment">/* Startup frame */</span></div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <a class="code" href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a>(GTK_GRID(grid), _(<span class="stringliteral">&quot;Connection profile security&quot;</span>), 8, 1, 2);</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="comment">/* Autostart profile option */</span></div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; priv-&gt;behavior_lock_check = <a class="code" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a>(gfe, grid, 10, 1, _(<span class="stringliteral">&quot;Require password to connect or edit the profile&quot;</span>),</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;profile-lock&quot;</span>, FALSE), <span class="stringliteral">&quot;profile-lock&quot;</span>);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;}</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</span></div><div class="line"><a name="l01118"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7"> 1118</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7">ssh_tunnel_auth_list</a>[] =</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;{</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>),</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH identity file&quot;</span>),</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH agent&quot;</span>),</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="stringliteral">&quot;3&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Public key (automatic)&quot;</span>),</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="stringliteral">&quot;4&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Kerberos (GSSAPI)&quot;</span>),</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; NULL</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;};</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div><div class="line"><a name="l01129"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23"> 1129</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23">remmina_file_editor_create_ssh_tunnel_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a> ssh_setting)</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;{</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</span></div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keyword">const</span> gchar *cs;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; gchar *s;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; gchar *p;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; gint row = 0;</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>)</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="comment">/* The SSH tab (implementation) */</span></div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL,</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; _(<span class="stringliteral">&quot;SSH Tunnel&quot;</span>), 9, 3);</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; widget = gtk_toggle_button_new_with_label(_(<span class="stringliteral">&quot;Enable SSH tunnel&quot;</span>));</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a>), gfe);</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; priv-&gt;ssh_tunnel_enabled_check = widget;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; widget = gtk_check_button_new_with_label(_(<span class="stringliteral">&quot;Tunnel via loopback address&quot;</span>));</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 2, 1);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; priv-&gt;ssh_tunnel_loopback_check = widget;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="comment">// 1</span></div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; row++;</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="comment">/* SSH Server group */</span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordflow">switch</span> (ssh_setting) {</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>:</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; s = g_strdup_printf(_(<span class="stringliteral">&quot;Same server at port %i&quot;</span>), DEFAULT_SSH_PORT);</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; widget = gtk_radio_button_new_with_label(NULL, s);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; g_free(s);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 3, 1);</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; priv-&gt;ssh_tunnel_server_default_radio = widget;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="comment">// 2</span></div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; row++;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; widget = gtk_radio_button_new_with_label_from_widget(</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; GTK_RADIO_BUTTON(priv-&gt;ssh_tunnel_server_default_radio), _(<span class="stringliteral">&quot;Custom&quot;</span>));</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a>), gfe);</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; priv-&gt;ssh_tunnel_server_custom_radio = widget;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 100);</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; gtk_widget_set_tooltip_markup(widget, _(server_tips2));</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 2, 1);</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; priv-&gt;ssh_tunnel_server_entry = widget;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="comment">// 3</span></div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; row++;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>:</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; priv-&gt;ssh_tunnel_server_default_radio = NULL;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; priv-&gt;ssh_tunnel_server_custom_radio = NULL;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; priv-&gt;ssh_tunnel_server_entry = <a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(gfe, grid, 1, 0,</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; _(<span class="stringliteral">&quot;Server&quot;</span>), NULL, <span class="stringliteral">&quot;ssh_reverse_tunnel_server&quot;</span>);</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; gtk_widget_set_tooltip_markup(priv-&gt;ssh_tunnel_server_entry, _(server_tips));</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="comment">// 2</span></div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; row++;</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a>:</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a>:</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; priv-&gt;ssh_tunnel_server_default_radio = NULL;</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; priv-&gt;ssh_tunnel_server_custom_radio = NULL;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; priv-&gt;ssh_tunnel_server_entry = NULL;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; }</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="comment">/* This is not used? */</span></div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; p = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;protocol_combo));</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a>) {</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(gfe, grid, row, 1,</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; _(<span class="stringliteral">&quot;Start-up path&quot;</span>), NULL, <span class="stringliteral">&quot;start-up-path&quot;</span>);</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;execpath&quot;</span>);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, <span class="stringliteral">&quot;execpath&quot;</span>, widget);</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="comment">// 2</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; row++;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; }</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="comment">/* SSH Authentication frame */</span></div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <a class="code" href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a>(GTK_GRID(grid), _(<span class="stringliteral">&quot;SSH Authentication&quot;</span>), row, 6, 1);</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="comment">// 5</span></div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; row += 2;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; priv-&gt;ssh_tunnel_auth_combo = <a class="code" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; _(<span class="stringliteral">&quot;Authentication type&quot;</span>),</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; (<span class="keyword">const</span> gpointer *)<a class="code" href="remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7">ssh_tunnel_auth_list</a>,</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_auth&quot;</span>), <span class="stringliteral">&quot;ssh_tunnel_auth&quot;</span>);</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; row++;</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a> ||</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>) {</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; priv-&gt;ssh_tunnel_username_entry =</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; _(<span class="stringliteral">&quot;Username&quot;</span>), NULL, <span class="stringliteral">&quot;ssh_tunnel_username&quot;</span>);</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="comment">// 5</span></div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; row++;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; }</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583">remmina_file_editor_create_password</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; _(<span class="stringliteral">&quot;Password&quot;</span>),</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>),</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>);</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; priv-&gt;ssh_tunnel_auth_password = widget;</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; row++;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; priv-&gt;ssh_tunnel_privatekey_chooser = <a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; _(<span class="stringliteral">&quot;SSH private key file&quot;</span>),</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>),</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; GTK_FILE_CHOOSER_ACTION_OPEN, <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>);</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; row++;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; priv-&gt;ssh_tunnel_certfile_chooser = <a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; _(<span class="stringliteral">&quot;SSH certificate file&quot;</span>),</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>),</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; GTK_FILE_CHOOSER_ACTION_OPEN, <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; row++;</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Password to unlock private key&quot;</span>));</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 2, 1);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 300);</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; priv-&gt;ssh_tunnel_passphrase = widget;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; row++;</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="comment">/* Set the values */</span></div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_server&quot;</span>);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>) {</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_enabled_check),</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, FALSE));</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_loopback_check),</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_loopback&quot;</span>, FALSE));</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cs ? priv-&gt;ssh_tunnel_server_custom_radio : priv-&gt;ssh_tunnel_server_default_radio), TRUE);</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; gtk_entry_set_text(GTK_ENTRY(priv-&gt;ssh_tunnel_server_entry),</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>) {</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_enabled_check),</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, FALSE));</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_loopback_check),</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_loopback&quot;</span>, FALSE));</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; gtk_entry_set_text(GTK_ENTRY(priv-&gt;ssh_tunnel_server_entry),</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; }</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a>(NULL, gfe, ssh_setting);</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; gtk_widget_show_all(grid);</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; g_free(p);</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;}</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div><div class="line"><a name="l01297"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38"> 1297</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38">remmina_file_editor_create_all_settings</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;{</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> notes_settings[] =</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; {</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a>, <span class="stringliteral">&quot;notes_text&quot;</span>, NULL, FALSE, NULL, NULL },</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; };</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea">remmina_file_editor_create_notebook_container</a>(gfe);</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="comment">/* The Basic tab */</span></div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keywordflow">if</span> (priv-&gt;plugin-&gt;basic_settings) {</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL, _(<span class="stringliteral">&quot;Basic&quot;</span>), 20, 2);</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a>(gfe, grid, priv-&gt;plugin-&gt;basic_settings);</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; }</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <span class="comment">/* The Advanced tab */</span></div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">if</span> (priv-&gt;plugin-&gt;advanced_settings) {</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL, _(<span class="stringliteral">&quot;Advanced&quot;</span>), 20, 2);</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a>(gfe, grid, priv-&gt;plugin-&gt;advanced_settings);</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; }</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; <span class="comment">/* The Behavior tab */</span></div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c">remmina_file_editor_create_behavior_tab</a>(gfe);</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="comment">/* The SSH tab */</span></div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <a class="code" href="remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23">remmina_file_editor_create_ssh_tunnel_tab</a>(gfe, priv-&gt;plugin-&gt;ssh_setting);</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <span class="comment">/* Notes tab */</span></div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL, _(<span class="stringliteral">&quot;Notes&quot;</span>), 1, 1);</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a>(gfe, grid, notes_settings);</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;}</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;</div><div class="line"><a name="l01334"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16"> 1334</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16">remmina_file_editor_protocol_combo_on_changed</a>(GtkComboBox *combo, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;{</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; gchar *protocol;</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; <span class="keywordflow">if</span> (priv-&gt;config_container) {</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; gtk_widget_destroy(priv-&gt;config_container);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; priv-&gt;config_container = NULL;</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; gtk_widget_destroy(priv-&gt;config_viewport);</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; priv-&gt;config_viewport = NULL;</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; gtk_widget_destroy(priv-&gt;config_scrollable);</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; priv-&gt;config_scrollable = NULL;</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; }</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; priv-&gt;server_combo = NULL;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; priv-&gt;resolution_iws_radio = NULL;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; priv-&gt;resolution_auto_radio = NULL;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; priv-&gt;resolution_custom_radio = NULL;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; priv-&gt;resolution_custom_combo = NULL;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; priv-&gt;keymap_combo = NULL;</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; priv-&gt;ssh_tunnel_enabled_check = NULL;</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; priv-&gt;ssh_tunnel_loopback_check = NULL;</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; priv-&gt;ssh_tunnel_server_default_radio = NULL;</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; priv-&gt;ssh_tunnel_server_custom_radio = NULL;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; priv-&gt;ssh_tunnel_server_entry = NULL;</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; priv-&gt;ssh_tunnel_username_entry = NULL;</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; priv-&gt;ssh_tunnel_auth_combo = NULL;</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; priv-&gt;ssh_tunnel_auth_password = NULL;</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; priv-&gt;ssh_tunnel_privatekey_chooser = NULL;</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; priv-&gt;ssh_tunnel_certfile_chooser = NULL;</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; g_hash_table_remove_all(priv-&gt;setting_widgets);</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; protocol = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(combo);</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; <span class="keywordflow">if</span> (protocol) {</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; priv-&gt;plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)<a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>,</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; protocol);</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; g_free(protocol);</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38">remmina_file_editor_create_all_settings</a>(gfe);</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; }</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;}</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb"> 1378</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb">remmina_file_editor_save_behavior_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;{</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;precommand&quot;</span>, gtk_entry_get_text(GTK_ENTRY(priv-&gt;behavior_precommand_entry)));</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;postcommand&quot;</span>, gtk_entry_get_text(GTK_ENTRY(priv-&gt;behavior_postcommand_entry)));</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; gboolean autostart_enabled = (priv-&gt;behavior_autostart_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;behavior_autostart_check)) : FALSE);</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;enable-autostart&quot;</span>, autostart_enabled);</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; gboolean lock_enabled = (priv-&gt;behavior_lock_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;behavior_lock_check)) : FALSE);</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;profile-lock&quot;</span>, lock_enabled);</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;}</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01392"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7"> 1392</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7">remmina_file_editor_save_ssh_tunnel_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;{</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; gboolean ssh_tunnel_enabled;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; <span class="keywordtype">int</span> ssh_tunnel_auth;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; ssh_tunnel_enabled = (priv-&gt;ssh_tunnel_enabled_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_enabled_check)) : FALSE);</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file,</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_loopback&quot;</span>,</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; (priv-&gt;ssh_tunnel_loopback_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_loopback_check)) : FALSE));</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, ssh_tunnel_enabled);</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_auth&quot;</span>,</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;ssh_tunnel_auth_combo)));</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_username&quot;</span>,</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; (ssh_tunnel_enabled ? gtk_entry_get_text(GTK_ENTRY(priv-&gt;ssh_tunnel_username_entry)) : NULL));</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_server&quot;</span>,</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; (ssh_tunnel_enabled &amp;&amp; priv-&gt;ssh_tunnel_server_entry &amp;&amp; (priv-&gt;ssh_tunnel_server_custom_radio == NULL || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_server_custom_radio))) ? gtk_entry_get_text(GTK_ENTRY(priv-&gt;ssh_tunnel_server_entry)) : NULL));</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; ssh_tunnel_auth = gtk_combo_box_get_active(GTK_COMBO_BOX(priv-&gt;ssh_tunnel_auth_combo));</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_auth&quot;</span>,</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; ssh_tunnel_auth);</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; </div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <span class="comment">// If box is unchecked for private key and certfile file choosers,</span></div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="comment">// set the string to NULL in the remmina file </span></div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; <span class="keywordflow">if</span> (gtk_widget_get_sensitive(priv-&gt;ssh_tunnel_privatekey_chooser)) {</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>,</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; (priv-&gt;ssh_tunnel_privatekey_chooser ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv-&gt;ssh_tunnel_privatekey_chooser)) : NULL));</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; }</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>, NULL);</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; }</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; </div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordflow">if</span> (gtk_widget_get_sensitive(priv-&gt;ssh_tunnel_certfile_chooser)) {</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>,</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; (priv-&gt;ssh_tunnel_certfile_chooser ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv-&gt;ssh_tunnel_certfile_chooser)) : NULL));</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; }</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>, NULL);</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; }</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>,</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; (ssh_tunnel_enabled &amp;&amp; (ssh_tunnel_auth == <a class="code" href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04a7d995a7868d2d2f81e9dd2f898b206fe">SSH_AUTH_PASSWORD</a>)) ? gtk_entry_get_text(GTK_ENTRY(priv-&gt;ssh_tunnel_auth_password)) : NULL);</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_passphrase&quot;</span>,</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; (ssh_tunnel_enabled &amp;&amp; (ssh_tunnel_auth == <a class="code" href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04aeba5f4ff7657d7b15519556793ee8930">SSH_AUTH_PUBLICKEY</a> || ssh_tunnel_auth == <a class="code" href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04a9f6024449a620d679eab2c09ea77877e">SSH_AUTH_AUTO_PUBLICKEY</a>)) ? gtk_entry_get_text(GTK_ENTRY(priv-&gt;ssh_tunnel_passphrase)) : NULL);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;}</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;</div><div class="line"><a name="l01453"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca"> 1453</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> * gfe,</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; gchar * setting_name_to_validate,</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; gconstpointer value,</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; GError ** err)</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;{</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; <span class="keywordflow">if</span> (!setting_name_to_validate || !value || !gfe) {</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; <span class="keywordflow">if</span> (!setting_name_to_validate) {</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; g_critical(_(<span class="stringliteral">&quot;(%s: %i): Can&#39;t validate setting &#39;%s&#39; since &#39;value&#39; or &#39;gfe&#39; &quot;</span></div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; <span class="stringliteral">&quot;are NULL!&quot;</span>),</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; __func__, __LINE__, setting_name_to_validate);</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; g_critical(_(<span class="stringliteral">&quot;(%s: %i): Can&#39;t validate user input since &quot;</span></div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; <span class="stringliteral">&quot;&#39;setting_name_to_validate&#39;, &#39;value&#39; or &#39;gfe&#39; are NULL!&quot;</span>),</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; __func__, __LINE__);</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; }</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; g_set_error(err, 1, 1, _(<span class="stringliteral">&quot;Internal error.&quot;</span>));</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; }</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; <span class="keywordflow">if</span> (strcmp(setting_name_to_validate, <span class="stringliteral">&quot;notes_text&quot;</span>) == 0) {</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; <span class="comment">// Not a plugin setting. Bail out early.</span></div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; }</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting_iter;</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *protocol_plugin;</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; protocol_plugin = priv-&gt;plugin;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aae09a7e2c978cc36e85d0f295518978d">basic_settings</a>;</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; <span class="comment">// gboolean found = FALSE;</span></div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <span class="keywordflow">if</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a> == NULL) {</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; g_error(<span class="stringliteral">&quot;Internal error: a setting name in protocol plugin %s is &quot;</span></div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; <span class="stringliteral">&quot;null. Please fix RemminaProtocolSetting struct content.&quot;</span>,</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">name</a>);</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((gchar *)setting_name_to_validate) {</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; <span class="keywordflow">if</span> (strcmp((gchar *)setting_name_to_validate, setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>) == 0) {</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; <span class="comment">// found = TRUE;</span></div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; gpointer validator_data = setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">validator_data</a>;</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; GCallback validator = setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">validator</a>;</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; <span class="comment">// Default behaviour is that everything is valid,</span></div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; <span class="comment">// except a validator is given and its returned GError is not NULL.</span></div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; GError *err_ret = NULL;</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; g_debug(<span class="stringliteral">&quot;Checking setting &#39;%s&#39; for validation.&quot;</span>, setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>);</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; <span class="keywordflow">if</span> (validator != NULL) {</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; <span class="comment">// Looks weird but it calls the setting&#39;s validator</span></div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; <span class="comment">// function using setting_name_to_validate, value and</span></div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; <span class="comment">// validator_data as parameters and it returns a GError*.</span></div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; err_ret = ((GError * (*)(gpointer, gconstpointer, gpointer)) validator)(setting_name_to_validate, value, validator_data);</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; }</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="keywordflow">if</span> (err_ret) {</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; g_debug(<span class="stringliteral">&quot;it has a validator function and it had an error!&quot;</span>);</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; <span class="comment">// pass err (returned value) to function caller.</span></div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; *err = err_ret;</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; }</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; }</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; }</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; setting_iter++;</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; }</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <span class="comment">// if (!found) {</span></div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; <span class="comment">// TOO VERBOSE:</span></div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; <span class="comment">// g_warning(&quot;%s is not a plugin setting!&quot;, setting_name_to_validate);</span></div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; }</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;}</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;</div><div class="line"><a name="l01531"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9"> 1531</a></span>&#160;<span class="keyword">static</span> GError *<a class="code" href="remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9">remmina_file_editor_update_settings</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> * gfe,</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; GtkWidget ** failed_widget)</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;{</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; GHashTableIter iter;</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; gpointer key;</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; gpointer widget;</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; GtkTextBuffer *buffer;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; gchar *escaped, *unescaped;</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; GtkTextIter start, end;</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; GError *err = NULL;</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; *failed_widget = NULL;</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; g_hash_table_iter_init(&amp;iter, priv-&gt;setting_widgets);</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; <span class="keywordflow">while</span> (g_hash_table_iter_next(&amp;iter, &amp;key, &amp;widget)) {</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; </div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="comment">// We don&#39;t want to save or validate grayed-out settings.</span></div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <span class="comment">// If widget is a file chooser, it was made not sensitive because</span></div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; <span class="comment">// the box was unchecked. In that case, don&#39;t continue. The </span></div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; <span class="comment">// relevant file strings will be set to NULL in the remmina file.</span></div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; <span class="keywordflow">if</span> (!gtk_widget_get_sensitive(GTK_WIDGET(widget)) &amp;&amp; !GTK_IS_FILE_CHOOSER(widget)) {</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; g_debug(<span class="stringliteral">&quot;Grayed-out setting-widget &#39;%s&#39; will not be saved.&quot;</span>,</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; gtk_widget_get_name(widget));</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; }</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; <span class="keywordflow">if</span> (GTK_IS_ENTRY(widget)) {</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <span class="keyword">const</span> gchar *value = gtk_entry_get_text(GTK_ENTRY(widget));</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, value, &amp;err)) {</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; }</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GTK_IS_TEXT_VIEW(widget)) {</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; gtk_text_buffer_get_start_iter(buffer, &amp;start);</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; gtk_text_buffer_get_end_iter(buffer, &amp;end);</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; unescaped = gtk_text_buffer_get_text(buffer, &amp;start, &amp;end, FALSE);</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; escaped = g_uri_escape_string(unescaped, NULL, TRUE);</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, escaped, &amp;err)) {</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; }</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, escaped);</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; g_free(escaped);</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GTK_IS_COMBO_BOX(widget)) {</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; gchar *value = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(widget));</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, value, &amp;err)) {</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; }</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GTK_IS_FILE_CHOOSER(widget)) {</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; gchar *value = gtk_widget_get_sensitive(GTK_WIDGET(widget)) ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)) : NULL;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; <span class="keywordflow">if</span> (!gtk_widget_get_sensitive(GTK_WIDGET(widget))) {</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; }</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, value, &amp;err)) {</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; g_free(value);</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; }</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; g_free(value);</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GTK_IS_TOGGLE_BUTTON(widget)) {</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; gboolean value = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, &amp;value, &amp;err)) {</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; }</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; }</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; }</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; <span class="keywordflow">return</span> err;</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; }</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;}</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div><div class="line"><a name="l01636"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5"> 1636</a></span>&#160;<span class="keyword">static</span> GError *<a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> * gfe,</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; GtkWidget ** failed_widget)</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;{</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; <span class="keywordtype">int</span> res_w, res_h;</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; gchar *custom_resolution;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a> res_mode;</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;name&quot;</span>, gtk_entry_get_text(GTK_ENTRY(priv-&gt;name_entry)));</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;labels&quot;</span>, gtk_entry_get_text(GTK_ENTRY(priv-&gt;labels_entry)));</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;group&quot;</span>,</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; (priv-&gt;group_combo ? <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;group_combo)) : NULL));</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;protocol&quot;</span>,</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;protocol_combo)));</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;server&quot;</span>,</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; (priv-&gt;server_combo ? <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;server_combo)) : NULL));</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; <span class="keywordflow">if</span> (priv-&gt;resolution_auto_radio) {</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; <span class="keywordflow">if</span> (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;resolution_auto_radio))) {</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; <span class="comment">/* Resolution is set to auto (which means: Use client fullscreen resolution, aka use client resolution) */</span></div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; res_w = res_h = 0;</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a>;</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;resolution_iws_radio))) {</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160; <span class="comment">/* Resolution is set to initial window size */</span></div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; res_w = res_h = 0;</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a>;</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; <span class="comment">/* Resolution is set to a value from the list */</span></div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; custom_resolution = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;resolution_custom_combo));</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__public_8c.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public_split_resolution_string</a>(custom_resolution, &amp;res_w, &amp;res_h))</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a>;</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a>;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; g_free(custom_resolution);</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; }</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;resolution_mode&quot;</span>, res_mode);</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;resolution_width&quot;</span>, res_w);</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;resolution_height&quot;</span>, res_h);</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; }</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; <span class="keywordflow">if</span> (priv-&gt;keymap_combo)</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;keymap&quot;</span>,</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;keymap_combo)));</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb">remmina_file_editor_save_behavior_tab</a>(gfe);</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7">remmina_file_editor_save_ssh_tunnel_tab</a>(gfe);</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9">remmina_file_editor_update_settings</a>(gfe, failed_widget);</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;}</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;</div><div class="line"><a name="l01691"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6"> 1691</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6">remmina_file_editor_on_default</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;{</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *gf;</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; GtkWidget *dialog;</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; GtkWidget *failed_widget = NULL;</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; GError *err = <a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(gfe, &amp;failed_widget);</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; g_warning(_(<span class="stringliteral">&quot;Couldn&#39;t validate user input. %s&quot;</span>), err-&gt;message);</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(gfe, failed_widget, err);</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; }</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; gf = <a class="code" href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; <a class="code" href="remmina__file_8c.html#ab03b042504c09c1ad880ac126a703114">remmina_file_set_filename</a>(gf, <a class="code" href="rcw_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a>);</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; <span class="comment">/* Clear properties that should never be default */</span></div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;name&quot;</span>, NULL);</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;server&quot;</span>, NULL);</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;password&quot;</span>, NULL);</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;precommand&quot;</span>, NULL);</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;postcommand&quot;</span>, NULL);</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;ssh_tunnel_server&quot;</span>, NULL);</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>, NULL);</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;ssh_tunnel_passphrase&quot;</span>, NULL);</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(gf);</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; <a class="code" href="remmina__file_8c.html#abd2f06bf0a5ddcf7156e5ef7d0c8d4d7">remmina_file_free</a>(gf);</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; dialog = gtk_message_dialog_new(GTK_WINDOW(gfe), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO,</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; GTK_BUTTONS_OK, _(<span class="stringliteral">&quot;Default settings saved.&quot;</span>));</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; gtk_widget_destroy(dialog);</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;}</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;</div><div class="line"><a name="l01729"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad"> 1729</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad">remmina_file_editor_on_save</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;{</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; GtkWidget *failed_widget = NULL;</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; GError *err = <a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(gfe, &amp;failed_widget);</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; g_warning(_(<span class="stringliteral">&quot;Couldn&#39;t validate user input. %s&quot;</span>), err-&gt;message);</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(gfe, failed_widget, err);</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; }</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a>(gfe);</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; <a class="code" href="remmina__icon_8c.html#af80ed314f91d653237249d839c7fc3b2">remmina_icon_populate_menu</a>();</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; gtk_widget_destroy(GTK_WIDGET(gfe));</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;}</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;</div><div class="line"><a name="l01749"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25"> 1749</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25">remmina_file_editor_on_connect</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;{</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *gf;</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; GtkWidget *failed_widget = NULL;</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; GError *err = <a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(gfe, &amp;failed_widget);</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; g_warning(_(<span class="stringliteral">&quot;Couldn&#39;t validate user input. %s&quot;</span>), err-&gt;message);</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(gfe, failed_widget, err);</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; }</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; gf = <a class="code" href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; <span class="comment">/* Put server into name for &quot;Quick Connect&quot; */</span></div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(gf) == NULL)</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;name&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gf, <span class="stringliteral">&quot;server&quot;</span>));</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; gtk_widget_destroy(GTK_WIDGET(gfe));</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; gf-&gt;prevent_saving = TRUE;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; <a class="code" href="rcw_8c.html#a1b7a771392e15e527005305e71cc2546">rcw_open_from_file</a>(gf);</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;}</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;</div><div class="line"><a name="l01771"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e"> 1771</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e">remmina_file_editor_on_save_connect</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;{</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *gf;</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; GtkWidget *failed_widget = NULL;</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; GError *err = <a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(gfe, &amp;failed_widget);</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; g_warning(_(<span class="stringliteral">&quot;Couldn&#39;t validate user input. %s&quot;</span>), err-&gt;message);</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(gfe, failed_widget, err);</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160; }</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a>(gfe);</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <a class="code" href="remmina__icon_8c.html#af80ed314f91d653237249d839c7fc3b2">remmina_icon_populate_menu</a>();</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160; gf = <a class="code" href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160; <span class="comment">/* Put server into name for Quick Connect */</span></div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(gf) == NULL)</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;name&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gf, <span class="stringliteral">&quot;server&quot;</span>));</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; gtk_widget_destroy(GTK_WIDGET(gfe));</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160; <a class="code" href="rcw_8c.html#a1b7a771392e15e527005305e71cc2546">rcw_open_from_file</a>(gf);</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;}</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;</div><div class="line"><a name="l01798"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3"> 1798</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3">remmina_file_editor_on_cancel</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;{</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; gtk_widget_destroy(GTK_WIDGET(gfe));</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;}</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;</div><div class="line"><a name="l01804"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a9afd8d41c66f547320930eb331f3124d"> 1804</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a9afd8d41c66f547320930eb331f3124d">remmina_file_editor_init</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;{</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; priv = g_new0(<a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a>, 1);</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a> = priv;</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; <span class="comment">/* Create the editor dialog */</span></div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160; gtk_window_set_title(GTK_WINDOW(gfe), _(<span class="stringliteral">&quot;Remote Connection Profile&quot;</span>));</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;_Cancel&quot;</span>)), GTK_RESPONSE_CANCEL);</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3">remmina_file_editor_on_cancel</a>), gfe);</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; <span class="comment">/* Default button */</span></div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;Save as Default&quot;</span>)), GTK_RESPONSE_OK);</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; gtk_widget_set_tooltip_text(GTK_WIDGET(widget), _(<span class="stringliteral">&quot;Use the current settings as the default for all new connection profiles&quot;</span>));</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6">remmina_file_editor_on_default</a>), gfe);</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;_Save&quot;</span>)), GTK_RESPONSE_APPLY);</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad">remmina_file_editor_on_save</a>), gfe);</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160; gtk_widget_set_sensitive(widget, FALSE);</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; priv-&gt;save_button = widget;</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;Connect&quot;</span>)), GTK_RESPONSE_ACCEPT);</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25">remmina_file_editor_on_connect</a>), gfe);</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;_Save and Connect&quot;</span>)), GTK_RESPONSE_OK);</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; gtk_widget_set_can_default(widget, TRUE);</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e">remmina_file_editor_on_save_connect</a>), gfe);</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; gtk_dialog_set_default_response(GTK_DIALOG(gfe), GTK_RESPONSE_OK);</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; gtk_window_set_default_size(GTK_WINDOW(gfe), 800, 600);</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; g_signal_connect(G_OBJECT(gfe), <span class="stringliteral">&quot;destroy&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f">remmina_file_editor_destroy</a>), NULL);</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; g_signal_connect(G_OBJECT(gfe), <span class="stringliteral">&quot;realize&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b">remmina_file_editor_on_realize</a>), NULL);</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; priv-&gt;setting_widgets = g_hash_table_new(g_str_hash, g_str_equal);</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160; <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>(GTK_WIDGET(gfe));</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;}</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;</div><div class="line"><a name="l01847"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b"> 1847</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b">remmina_file_editor_iterate_protocol</a>(gchar *protocol, <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin, gpointer data)</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;{</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe = REMMINA_FILE_EDITOR(data);</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; GtkListStore *store;</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; GtkTreeIter iter;</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; gboolean first;</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; store = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;protocol_combo)));</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; first = !gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &amp;iter);</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; gtk_list_store_append(store, &amp;iter);</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; gtk_list_store_set(store, &amp;iter, 0, protocol, 1, g_dgettext(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">domain</a>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a4ac66b7ebefb9bd8167737eb1af83cde">description</a>), 2,</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; ((<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)plugin)-&gt;icon_name, -1);</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160; <span class="keywordflow">if</span> (first || g_strcmp0(protocol, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;protocol&quot;</span>)) == 0)</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; gtk_combo_box_set_active_iter(GTK_COMBO_BOX(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;protocol_combo), &amp;iter);</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;}</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;</div><div class="line"><a name="l01869"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#add382dd8f40444b928e78b293a86a257"> 1869</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;{</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; gtk_widget_set_sensitive(priv-&gt;group_combo, TRUE);</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; gtk_widget_set_sensitive(priv-&gt;save_button, TRUE);</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;}</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;</div><div class="line"><a name="l01879"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b"> 1879</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b">remmina_file_editor_entry_on_changed</a>(GtkEditable *editable, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;{</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(priv-&gt;remmina_file) == NULL) {</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(priv-&gt;remmina_file);</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; <span class="comment">/* TODO: Probably to be removed */</span></div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; <a class="code" href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(gfe);</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; <a class="code" href="remmina__file_8c.html#a55f66f2bb81bf427d6837e1adb7fe1d4">remmina_file_delete</a>(<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(priv-&gt;remmina_file));</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(priv-&gt;remmina_file);</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; <a class="code" href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(gfe);</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; }</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;}</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;</div><div class="line"><a name="l01896"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#a3866832d550ceac91d608900df4c8056"> 1896</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;{</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(priv-&gt;remmina_file) == NULL) {</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(priv-&gt;remmina_file);</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160; <a class="code" href="remmina__file_8c.html#a55f66f2bb81bf427d6837e1adb7fe1d4">remmina_file_delete</a>(<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(priv-&gt;remmina_file));</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(priv-&gt;remmina_file);</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; }</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;}</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;</div><div class="line"><a name="l01910"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#a08327d6951c345808628dbb5784aba06"> 1910</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;{</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe;</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; gchar *groups;</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; gchar *s;</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <span class="keyword">const</span> gchar *cs;</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; gfe = REMMINA_FILE_EDITOR(g_object_new(REMMINA_TYPE_FILE_EDITOR, NULL));</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; priv-&gt;remmina_file = remminafile;</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(remminafile) == NULL)</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; gtk_dialog_set_response_sensitive(GTK_DIALOG(gfe), GTK_RESPONSE_APPLY, FALSE);</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; <span class="comment">/* Create the &quot;Profile&quot; group on the top (for name and protocol) */</span></div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; grid = gtk_grid_new();</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; gtk_widget_show(grid);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; gtk_grid_set_row_spacing(GTK_GRID(grid), 4);</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; gtk_grid_set_column_spacing(GTK_GRID(grid), 8);</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; gtk_grid_set_column_homogeneous(GTK_GRID(grid), TRUE);</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(grid), 8);</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(gfe))), grid, FALSE, FALSE, 2);</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; <span class="comment">// remmina_public_create_group(GTK_GRID(grid), _(&quot;Profile&quot;), 0, 4, 3);</span></div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; gboolean profile_file_exists = (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(remminafile) != NULL);</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; <span class="comment">/* Profile: Name */</span></div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, 3, 2, 1);</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; gtk_grid_set_column_spacing(GTK_GRID(grid), 10);</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, 3, 3, 1);</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 100);</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; priv-&gt;name_entry = widget;</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <span class="keywordflow">if</span> (!profile_file_exists) {</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), _(<span class="stringliteral">&quot;Quick Connect&quot;</span>));</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 16, 0)</span></div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; gtk_entry_grab_focus_without_selecting(GTK_ENTRY(widget));</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;changed&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b">remmina_file_editor_entry_on_changed</a>), gfe);</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;name&quot;</span>);</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; }</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <span class="comment">/* Profile: Group */</span></div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Group&quot;</span>));</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, 6, 2, 1);</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; groups = <a class="code" href="remmina__file__manager_8c.html#a536edeef371d907ab3936f4d65c3003d">remmina_file_manager_get_groups</a>();</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; priv-&gt;group_combo = <a class="code" href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public_create_combo_entry</a>(groups, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;group&quot;</span>), FALSE);</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; g_free(groups);</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; gtk_widget_show(priv-&gt;group_combo);</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; gtk_grid_attach(GTK_GRID(grid), priv-&gt;group_combo, 1, 6, 3, 1);</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; gtk_widget_set_sensitive(priv-&gt;group_combo, FALSE);</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; s = g_strdup_printf(_(<span class="stringliteral">&quot;Use &#39;%s&#39; as subgroup delimiter&quot;</span>), <span class="stringliteral">&quot;/&quot;</span>);</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; gtk_widget_set_tooltip_text(priv-&gt;group_combo, s);</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; g_free(s);</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; <span class="comment">/* Profile: Labels */</span></div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Labels&quot;</span>));</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, 9, 2, 1);</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; gtk_grid_set_column_spacing(GTK_GRID(grid), 10);</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, 9, 3, 1);</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 255);</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; priv-&gt;labels_entry = widget;</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; <span class="keywordflow">if</span> (!profile_file_exists) {</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; gtk_widget_set_tooltip_text(widget, _(<span class="stringliteral">&quot;Label1,Label2&quot;</span>));</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 16, 0)</span></div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; gtk_entry_grab_focus_without_selecting(GTK_ENTRY(widget));</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;changed&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b">remmina_file_editor_entry_on_changed</a>), gfe);</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;labels&quot;</span>);</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; }</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; <span class="comment">/* Profile: Protocol */</span></div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Protocol&quot;</span>));</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, 12, 2, 1);</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; widget = <a class="code" href="remmina__public_8c.html#ab4a593956dfe89aba3242a5c264a681f">remmina_public_create_combo</a>(TRUE);</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, 12, 3, 1);</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; priv-&gt;protocol_combo = widget;</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, <a class="code" href="remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b">remmina_file_editor_iterate_protocol</a>, gfe);</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;changed&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16">remmina_file_editor_protocol_combo_on_changed</a>), gfe);</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; <span class="comment">/* Create the &quot;Preference&quot; frame */</span></div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; widget = gtk_event_box_new();</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(gfe))), widget, TRUE, TRUE, 2);</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; priv-&gt;config_box = widget;</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; priv-&gt;config_container = NULL;</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; priv-&gt;config_scrollable = NULL;</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16">remmina_file_editor_protocol_combo_on_changed</a>(GTK_COMBO_BOX(priv-&gt;protocol_combo), gfe);</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; <a class="code" href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(gfe);</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; <span class="keywordflow">return</span> GTK_WIDGET(gfe);</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;}</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;</div><div class="line"><a name="l02039"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#aa4e8657ca722e4cce3f3c42c0cfec51e"> 2039</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;{</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a>(NULL, NULL);</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;}</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;</div><div class="line"><a name="l02045"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#ab563344276cbcdf0fcea05b0b64c7aeb"> 2045</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a>(<span class="keyword">const</span> gchar *server, <span class="keyword">const</span> gchar *protocol)</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;{</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a>();</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; <span class="keywordflow">if</span> (server)</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;server&quot;</span>, server);</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; <span class="keywordflow">if</span> (protocol)</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;protocol&quot;</span>, protocol);</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(remminafile);</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;}</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;</div><div class="line"><a name="l02059"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#aa5c50852f8569f075eec5d5db30c2ebf"> 2059</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a>(<span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;{</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; GtkWidget *dialog;</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#ac1685edf35a793a396ce039d7eec5343">remmina_file_copy</a>(filename);</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; <span class="keywordflow">if</span> (remminafile) {</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(remminafile);</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; _(<span class="stringliteral">&quot;Could not find the file “%s”.&quot;</span>), filename);</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; gtk_widget_destroy(dialog);</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; }</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;}</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;</div><div class="line"><a name="l02078"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#aa9345cfe3fb32d326b652e96ee55eaea"> 2078</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a>(<span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;{</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; remminafile = <a class="code" href="remmina__file__manager_8c.html#af7b58659604660eb0cb40b0e0f8348ab">remmina_file_manager_load_file</a>(filename);</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; <span class="keywordflow">if</span> (remminafile) {</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;profile-lock&quot;</span>, FALSE) &amp;&amp; <a class="code" href="remmina__unlock_8c.html#a81e79e5c1c230b7e2bf27b2457801d4e">remmina_unlock_new</a>(<a class="code" href="remmina__main_8c.html#a7740488de65c0e642895cc9dfba07b6e">remmina_main_get_window</a>()) == 0)</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(remminafile);</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; _(<span class="stringliteral">&quot;Could not find the file “%s”.&quot;</span>), filename);</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; gtk_widget_destroy(dialog);</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; }</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
+<a href="remmina__file__editor_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2009-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;ctype.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;config.h&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBAVAHI_UI</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;avahi-ui/avahi-ui.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rcw_8h.html">rcw.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file_8h.html">remmina_file.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__editor_8h.html">remmina_file_editor.h</a>&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__manager_8h.html">remmina_file_manager.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__icon_8h.html">remmina_icon.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__main_8h.html">remmina_main.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a>&quot;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref__dialog_8h.html">remmina_pref_dialog.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__ssh_8h.html">remmina_ssh.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__string__list_8h.html">remmina_string_list.h</a>&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__unlock_8h.html">remmina_unlock.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#abb7466f51c11427405a54c94767a52de"> 58</a></span>&#160;<a class="code" href="remmina__file__editor_8c.html#abb7466f51c11427405a54c94767a52de">G_DEFINE_TYPE</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a>, remmina_file_editor, GTK_TYPE_DIALOG)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *server_tips = <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;big&gt;&quot;</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="stringliteral">&quot;Supported formats\n&quot;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="stringliteral">&quot;• server\n&quot;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="stringliteral">&quot;• server[:port]\n&quot;</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="stringliteral">&quot;VNC additional formats\n&quot;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="stringliteral">&quot;• ID:repeater ID number\n&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="stringliteral">&quot;• unix:///path/socket.sock&quot;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="stringliteral">&quot;&lt;/big&gt;&quot;</span>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *cmd_tips = <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;big&gt;&quot;</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="stringliteral">&quot;• command in PATH args %h\n&quot;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="stringliteral">&quot;• /path/to/foo -options %h %u\n&quot;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="stringliteral">&quot;• %h is substituted with the server name\n&quot;</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="stringliteral">&quot;• %t is substituted with the SSH server name\n&quot;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="stringliteral">&quot;• %u is substituted with the username\n&quot;</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="stringliteral">&quot;• %U is substituted with the SSH username\n&quot;</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="stringliteral">&quot;• %p is substituted with Remmina profile name\n&quot;</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="stringliteral">&quot;• %g is substituted with Remmina profile group name\n&quot;</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="stringliteral">&quot;• %d is substituted with local date and time in ISO 8601 format\n&quot;</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="stringliteral">&quot;Do not run in background if you want the command to be executed before connecting.\n&quot;</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="stringliteral">&quot;&lt;/big&gt;&quot;</span>);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *server_tips2 = <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;&lt;big&gt;&quot;</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="stringliteral">&quot;Supported formats\n&quot;</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="stringliteral">&quot;• server\n&quot;</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="stringliteral">&quot;• server[:port]\n&quot;</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="stringliteral">&quot;• username@server[:port] (SSH protocol only)&quot;</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="stringliteral">&quot;&lt;/big&gt;&quot;</span>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">struct </span>_RemminaFileEditorPriv {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> * remmina_file;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> * plugin;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> gchar * avahi_service_type;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GtkWidget * name_entry;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GtkWidget * labels_entry;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GtkWidget * group_combo;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GtkWidget * protocol_combo;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GtkWidget * save_button;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GtkWidget * config_box;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GtkWidget * config_scrollable;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GtkWidget * config_viewport;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GtkWidget * config_container;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GtkWidget * server_combo;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GtkWidget * resolution_iws_radio;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GtkWidget * resolution_auto_radio;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GtkWidget * resolution_custom_radio;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GtkWidget * resolution_custom_combo;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GtkWidget * keymap_combo;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GtkWidget * assistance_toggle;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GtkWidget * assistance_file;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GtkWidget * assistance_password;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GtkWidget * assistance_file_label;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GtkWidget * assistance_password_label;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GtkWidget * behavior_autostart_check;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GtkWidget * behavior_precommand_entry;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GtkWidget * behavior_postcommand_entry;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GtkWidget * behavior_lock_check;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GtkWidget * ssh_tunnel_enabled_check;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GtkWidget * ssh_tunnel_loopback_check;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GtkWidget * ssh_tunnel_server_default_radio;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GtkWidget * ssh_tunnel_server_custom_radio;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GtkWidget * ssh_tunnel_server_entry;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GtkWidget * ssh_tunnel_auth_agent_radio;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GtkWidget * ssh_tunnel_auth_password_radio;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GtkWidget * ssh_tunnel_auth_password;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GtkWidget * ssh_tunnel_passphrase;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GtkWidget * ssh_tunnel_auth_publickey_radio;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GtkWidget * ssh_tunnel_auth_auto_publickey_radio;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GtkWidget * ssh_tunnel_auth_combo;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GtkWidget * ssh_tunnel_username_entry;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GtkWidget * ssh_tunnel_privatekey_chooser;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GtkWidget * ssh_tunnel_certfile_chooser;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GHashTable * setting_widgets;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b"> 144</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b">remmina_file_editor_class_init</a>(<a class="code" href="struct___remmina_file_editor_class.html">RemminaFileEditorClass</a> *klass)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;{</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11"> 164</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> * gfe,</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GtkWidget * failed_widget,</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GError * err)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span> (!err) {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; err = NULL; <span class="comment">// g_set_error doesn&#39;t like overwriting errors.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; g_set_error(&amp;err, 1, 1, _(<span class="stringliteral">&quot;Input is invalid.&quot;</span>));</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> (!gfe || !failed_widget) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; g_critical(<span class="stringliteral">&quot;(%s): Parameters RemminaFileEditor &#39;gfe&#39; or &quot;</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="stringliteral">&quot;GtkWidget* &#39;failed_widget&#39; are &#39;NULL&#39;!&quot;</span>,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; __func__);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; gint widget_width = gtk_widget_get_allocated_width(failed_widget);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; gint widget_height = gtk_widget_get_allocated_height(failed_widget);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GtkWidget *err_label = gtk_label_new(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GtkWidget *alert_icon = NULL;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; GtkWindow *err_window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GdkWindow *window = gtk_widget_get_window(failed_widget);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GtkAllocation allocation;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; gint failed_widget_x, failed_widget_y;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; gchar *markup = g_strdup_printf(<span class="stringliteral">&quot;&lt;span size=&#39;large&#39;&gt;%s&lt;/span&gt;&quot;</span>, err-&gt;message);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// Setup err_window</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; gtk_window_set_decorated(err_window, FALSE);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; gtk_window_set_type_hint(err_window, GDK_WINDOW_TYPE_HINT_TOOLTIP);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; gtk_window_set_default_size(err_window, widget_width, widget_height);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; gtk_window_set_title(err_window, <span class="stringliteral">&quot;Error&quot;</span>);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; gtk_window_set_resizable(err_window, TRUE);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// Move err_window under failed_widget</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; gtk_window_set_attached_to(err_window, failed_widget);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; gtk_window_set_transient_for(err_window, GTK_WINDOW(gfe));</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; gdk_window_get_origin(GDK_WINDOW(window), &amp;failed_widget_x, &amp;failed_widget_y);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; gtk_widget_get_allocation(failed_widget, &amp;allocation);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; failed_widget_x += allocation.x;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; failed_widget_y += allocation.y + allocation.height;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; gtk_window_move(err_window, failed_widget_x, failed_widget_y);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// Setup label</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; gtk_label_set_selectable(GTK_LABEL(err_label), FALSE);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; gtk_label_set_max_width_chars(GTK_LABEL(err_label), 1);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; gtk_widget_set_hexpand(GTK_WIDGET(err_label), TRUE);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; gtk_widget_set_vexpand(GTK_WIDGET(err_label), TRUE);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; gtk_label_set_ellipsize(GTK_LABEL(err_label), PANGO_ELLIPSIZE_END);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; gtk_label_set_line_wrap(GTK_LABEL(err_label), TRUE);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; gtk_label_set_line_wrap_mode(GTK_LABEL(err_label), PANGO_WRAP_WORD_CHAR);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; gtk_label_set_markup(GTK_LABEL(err_label), markup);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; alert_icon = gtk_image_new_from_icon_name(<span class="stringliteral">&quot;dialog-warning-symbolic&quot;</span>,</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; GTK_ICON_SIZE_DND);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// Fill icon and label into a box.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(alert_icon), FALSE, FALSE, 0);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(err_label), TRUE, TRUE, 5);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// Attach box to err_window</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; gtk_container_add(GTK_CONTAINER(err_window), GTK_WIDGET(box));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// Display everything.</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; gtk_widget_show_all(GTK_WIDGET(err_window));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// Mouse click and focus-loss will delete the err_window.</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; g_signal_connect(G_OBJECT(err_window), <span class="stringliteral">&quot;focus-out-event&quot;</span>,</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; G_CALLBACK(gtk_window_close), NULL);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; g_signal_connect(G_OBJECT(err_window), <span class="stringliteral">&quot;button-press-event&quot;</span>,</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; G_CALLBACK(gtk_window_close), NULL);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBAVAHI_UI</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05"> 242</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05">remmina_file_editor_browse_avahi</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;{</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; GtkWidget *dialog;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; gchar *host;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; dialog = aui_service_dialog_new(_(<span class="stringliteral">&quot;Choose a Remote Desktop Server&quot;</span>),</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; GTK_WINDOW(gfe),</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; _(<span class="stringliteral">&quot;_Cancel&quot;</span>), GTK_RESPONSE_CANCEL,</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; _(<span class="stringliteral">&quot;_OK&quot;</span>), GTK_RESPONSE_ACCEPT,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; NULL);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(gfe));</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; aui_service_dialog_set_resolve_service(AUI_SERVICE_DIALOG(dialog), TRUE);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; aui_service_dialog_set_resolve_host_name(AUI_SERVICE_DIALOG(dialog), TRUE);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; aui_service_dialog_set_browse_service_types(AUI_SERVICE_DIALOG(dialog),</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;avahi_service_type, NULL);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span> (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; host = g_strdup_printf(<span class="stringliteral">&quot;[%s]:%i&quot;</span>,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; aui_service_dialog_get_host_name(AUI_SERVICE_DIALOG(dialog)),</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; aui_service_dialog_get_port(AUI_SERVICE_DIALOG(dialog)));</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; host = NULL;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; gtk_widget_destroy(dialog);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span> (host) {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;server_combo))), host);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; g_free(host);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b"> 276</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b">remmina_file_editor_on_realize</a>(GtkWidget *widget, gpointer user_data)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;{</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; GtkWidget *defaultwidget;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; gfe = REMMINA_FILE_EDITOR(widget);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; defaultwidget = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;server_combo;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> (defaultwidget) {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span> (GTK_IS_EDITABLE(defaultwidget))</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; gtk_editable_select_region(GTK_EDITABLE(defaultwidget), 0, -1);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; gtk_widget_grab_focus(defaultwidget);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;}</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f"> 293</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f">remmina_file_editor_destroy</a>(GtkWidget *widget, gpointer data)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;{</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="remmina__file_8c.html#abd2f06bf0a5ddcf7156e5ef7d0c8d4d7">remmina_file_free</a>(REMMINA_FILE_EDITOR(widget)-&gt;priv-&gt;remmina_file);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; g_hash_table_destroy(REMMINA_FILE_EDITOR(widget)-&gt;priv-&gt;setting_widgets);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; g_free(REMMINA_FILE_EDITOR(widget)-&gt;priv);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb"> 301</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a>(GtkToggleButton *togglebutton, GtkWidget *widget)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;{</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; gtk_widget_set_sensitive(widget, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(togglebutton)));</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;}</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea"> 307</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea">remmina_file_editor_create_notebook_container</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;{</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">/* Create the notebook */</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container = gtk_notebook_new();</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport = gtk_viewport_new(NULL, NULL);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable = gtk_scrolled_window_new(NULL, NULL);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable), 2);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable),</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; gtk_widget_show(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; gtk_container_add(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport), gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport), 2);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; gtk_widget_show(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; gtk_container_add(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable), gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_viewport);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container), 2);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; gtk_widget_show(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; gtk_container_add(GTK_CONTAINER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_box), gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_scrollable);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;}</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556"> 329</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe,</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">const</span> gchar *stock_id, <span class="keyword">const</span> gchar *label, gint rows, gint cols)</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;{</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; GtkWidget *tablabel;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; GtkWidget *tabbody;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; tablabel = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; gtk_widget_show(tablabel);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; widget = gtk_image_new_from_icon_name(stock_id, GTK_ICON_SIZE_BUTTON);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; gtk_box_pack_start(GTK_BOX(tablabel), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; gtk_box_pack_start(GTK_BOX(tablabel), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; tabbody = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; gtk_widget_show(tabbody);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; gtk_notebook_append_page(GTK_NOTEBOOK(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;config_container), tabbody, tablabel);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; grid = gtk_grid_new();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; gtk_widget_show(grid);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; gtk_grid_set_row_spacing(GTK_GRID(grid), 8);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; gtk_grid_set_column_spacing(GTK_GRID(grid), 8);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(grid), 15);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; gtk_box_pack_start(GTK_BOX(tabbody), grid, FALSE, FALSE, 0);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> grid;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;}</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9"> 365</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a>(GtkToggleButton *togglebutton, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;{</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_entry),</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_enabled_check)) &amp;&amp;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_custom_radio == NULL ||</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_custom_radio))));</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6"> 375</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6">remmina_file_editor_assistance_enabled_check_on_toggled</a>(GtkToggleButton *togglebutton,</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;{</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; gboolean enabled = TRUE;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_toggle) {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_toggle));</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_file)</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_file), enabled);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_password)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_password), enabled);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_file_label)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_file_label), enabled);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_password_label)</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_password_label), enabled);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019"> 395</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a>(GtkToggleButton *togglebutton,</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a> ssh_setting)</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;{</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; gboolean enabled = TRUE;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; gchar *p;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keyword">const</span> gchar *cp;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keyword">const</span> gchar *s = NULL;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_enabled_check) {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_enabled_check));</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_loopback_check)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_loopback_check), enabled);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_default_radio)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_default_radio), enabled);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_custom_radio)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_server_custom_radio), enabled);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a>(NULL, gfe);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; p = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;protocol_combo));</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// if (!(g_strcmp0(p, &quot;SFTP&quot;) == 0 || g_strcmp0(p, &quot;SSH&quot;) == 0)) {</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_username_entry), enabled);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_password), enabled);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; gtk_widget_set_sensitive(GTK_WIDGET(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_combo), enabled);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; g_free(p);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">// remmina_file_editor_ssh_tunnel_auth_publickey_radio_on_toggled(NULL, gfe);</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; s = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">if</span> (s)</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_privatekey_chooser), s);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; s = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span> (s)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_certfile_chooser), s);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_username_entry)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span> (enabled &amp;&amp; gtk_entry_get_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_username_entry))[0] == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; cp = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_username&quot;</span>);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; gtk_entry_set_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_username_entry), cp ? cp : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_password) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">if</span> (enabled &amp;&amp; gtk_entry_get_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_password))[0] == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; cp = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; gtk_entry_set_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_auth_password), cp ? cp : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_passphrase) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span> (enabled &amp;&amp; gtk_entry_get_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_passphrase))[0] == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; cp = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_passphrase&quot;</span>);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; gtk_entry_set_text(GTK_ENTRY(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;ssh_tunnel_passphrase), cp ? cp : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;}</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae"> 452</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae">remmina_file_editor_create_server</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting, GtkWidget *grid,</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; gint row)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *plugin = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;plugin;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBAVAHI_UI</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; GtkWidget *hbox;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; gchar *s;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Server&quot;</span>));</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, row + 1);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; s = <a class="code" href="remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05">remmina_pref_get_recent</a>(plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">name</a>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; widget = <a class="code" href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public_create_combo_entry</a>(s, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;server&quot;</span>), TRUE);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; gtk_widget_set_tooltip_markup(widget, _(server_tips));</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; gtk_entry_set_activates_default(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(widget))), TRUE);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;server_combo = widget;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; g_free(s);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBAVAHI_UI</span></div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>) {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;avahi_service_type = (<span class="keyword">const</span> gchar *)setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; gtk_widget_show(hbox);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; widget = gtk_button_new_with_label(<span class="stringliteral">&quot;…&quot;</span>);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; s = g_strdup_printf(_(<span class="stringliteral">&quot;Browse the network to find a %s server&quot;</span>), plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">name</a>);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; gtk_widget_set_tooltip_text(widget, s);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; g_free(s);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05">remmina_file_editor_browse_avahi</a>), gfe);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; gtk_grid_attach(GTK_GRID(grid), hbox, 1, row, 1, 1);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 1, 1);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;}</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583"> 503</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583">remmina_file_editor_create_password</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid, gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *value, gchar *setting_name)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;{</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 12, 0)</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; gtk_widget_set_margin_end(widget, 40);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; gtk_widget_set_margin_right(widget, 40);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 1, 1);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 0);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; gtk_entry_set_activates_default(GTK_ENTRY(widget), TRUE);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), value);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="comment">/* Password view Toogle*/</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span> (setting_name) {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widget), GTK_ENTRY_ICON_SECONDARY, <span class="stringliteral">&quot;org.remmina.Remmina-password-reveal-symbolic&quot;</span>);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; gtk_entry_set_icon_activatable(GTK_ENTRY(widget), GTK_ENTRY_ICON_SECONDARY, TRUE);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; g_signal_connect(widget, <span class="stringliteral">&quot;icon-press&quot;</span>, G_CALLBACK(<a class="code" href="remmina__main_8c.html#aac3fe305e456dfa7bb55aa2f057e8cb0">remmina_main_toggle_password_view</a>), NULL);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;}</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a"> 540</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a">remmina_file_editor_update_resolution</a>(GtkWidget *widget, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;{</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; gchar *res_str;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; res_str = g_strdup_printf(<span class="stringliteral">&quot;%dx%d&quot;</span>,</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_width&quot;</span>, 0),</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_height&quot;</span>, 0));</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="remmina__public_8c.html#aa5eacff7c9dab7457dd65525d01047f8">remmina_public_load_combo_text_d</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_combo, <a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a>,</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; res_str, NULL);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; g_free(res_str);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;}</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4"> 552</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4">remmina_file_editor_browse_resolution</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;{</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; GtkDialog *dialog = <a class="code" href="remmina__string__list_8c.html#a11147c41297537effe55f18a63ce9f7e">remmina_string_list_new</a>(FALSE, NULL);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="remmina__string__list_8c.html#a500b85eafd23280f998d2980d1eba80e">remmina_string_list_set_validation_func</a>(<a class="code" href="remmina__public_8c.html#a098786d3aa6991aeba43a61e29d534d0">remmina_public_resolution_validation_func</a>);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="remmina__string__list_8c.html#ab1bacc097f59c20b477d954bb863a5e0">remmina_string_list_set_text</a>(<a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a>, TRUE);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <a class="code" href="remmina__string__list_8c.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list_set_titles</a>(_(<span class="stringliteral">&quot;Resolutions&quot;</span>), _(<span class="stringliteral">&quot;Configure the available resolutions&quot;</span>));</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(gfe));</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; gtk_dialog_run(dialog);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; g_free(<a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a>);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a> = <a class="code" href="remmina__string__list_8c.html#a74058eac0af28c05a55d041103457aec">remmina_string_list_get_text</a>();</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; g_signal_connect(G_OBJECT(dialog), <span class="stringliteral">&quot;destroy&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a">remmina_file_editor_update_resolution</a>), gfe);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;}</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5"> 568</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5">remmina_file_editor_create_resolution</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting,</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; GtkWidget *grid, gint row)</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;{</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; GtkWidget *hbox;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordtype">int</span> resolution_w, resolution_h;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; gchar *res_str;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a> res_mode;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; res_mode = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_mode&quot;</span>, <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a>);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; resolution_w = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_width&quot;</span>, -1);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; resolution_h = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;resolution_height&quot;</span>, -1);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="comment">/* If resolution_mode is non-existent (-1), then we try to calculate it</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="comment"> * as we did before having resolution_mode */</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">if</span> (res_mode == <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a>) {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">if</span> (resolution_w &lt;= 0 || resolution_h &lt;= 0)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a>;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; }</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">if</span> (res_mode == <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a>)</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; res_str = g_strdup_printf(<span class="stringliteral">&quot;%dx%d&quot;</span>, resolution_w, resolution_h);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; res_str = NULL;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Resolution&quot;</span>));</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; widget = gtk_radio_button_new_with_label(NULL, _(<span class="stringliteral">&quot;Use initial window size&quot;</span>));</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_iws_radio = widget;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; widget = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_iws_radio), _(<span class="stringliteral">&quot;Use client resolution&quot;</span>));</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_auto_radio = widget;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; gtk_grid_attach(GTK_GRID(grid), hbox, 1, row, 1, 1);</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; gtk_widget_show(hbox);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; gtk_widget_show(hbox);</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; gtk_grid_attach(GTK_GRID(grid), hbox, 1, row + 1, 1, 1);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; widget = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_iws_radio), _(<span class="stringliteral">&quot;Custom&quot;</span>));</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_radio = widget;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; widget = <a class="code" href="remmina__public_8c.html#a3796b536244067e9a85923b1cefa6cde">remmina_public_create_combo_text_d</a>(<a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">resolutions</a>, res_str, NULL);</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_combo = widget;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; widget = gtk_button_new_with_label(<span class="stringliteral">&quot;…&quot;</span>);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4">remmina_file_editor_browse_resolution</a>), gfe);</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; g_signal_connect(G_OBJECT(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_radio), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a>), gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_combo);</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">if</span> (res_mode == <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a>)</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_radio), TRUE);</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (res_mode == <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a>)</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_auto_radio), TRUE);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_iws_radio), TRUE);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; gtk_widget_set_sensitive(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_combo, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;resolution_custom_radio)));</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; g_free(res_str);</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;}</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586"> 648</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586">remmina_file_editor_create_assistance</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting,</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; GtkWidget *grid, gint row)</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;{</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordtype">int</span> assistance_mode;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; assistance_mode = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;assistance_mode&quot;</span>, 0);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; widget = gtk_toggle_button_new_with_label(_(<span class="stringliteral">&quot;Assistance Mode&quot;</span>));</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; gtk_toggle_button_set_active(widget, <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;assistance_mode&quot;</span>, 0));</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_toggle = widget;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; g_signal_connect(widget, <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6">remmina_file_editor_assistance_enabled_check_on_toggled</a>), gfe);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; widget = gtk_label_new(<span class="stringliteral">&quot;Assistance file&quot;</span>);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_END);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row+1, 1, 1);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_file_label = widget;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;assistance_file&quot;</span>));</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row+1, 1, 1);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_file = widget;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; widget = gtk_label_new(<span class="stringliteral">&quot;Assistance Password&quot;</span>);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_END);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row+2, 1, 1);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_password_label = widget;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;assistance_pass&quot;</span>));</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row+2, 1, 1);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;assistance_password = widget;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6">remmina_file_editor_assistance_enabled_check_on_toggled</a>(NULL, gfe);</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;}</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0"> 698</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *value, gint left,</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; gint right, gchar *setting_name)</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;{</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 12, 0)</span></div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; gtk_widget_set_margin_start(widget, left);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; gtk_widget_set_margin_end(widget, right);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; gtk_widget_set_margin_left(widget, left);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; gtk_widget_set_margin_right(widget, right);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col, row, 1, 1);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col + 1, row, 1, 1);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 300);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), value);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;}</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div><div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4"> 732</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *value,</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; gchar *setting_name)</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;{</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a>(gfe, grid, row, col, label, value, 0, 40,</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; setting_name);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;}</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7"> 741</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7">remmina_file_editor_create_textarea</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *value,</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; gchar *setting_name)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;{</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; GtkTextView *view;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; GtkTextBuffer *buffer;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; GtkTextIter start;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; widget = gtk_text_view_new();</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; view = GTK_TEXT_VIEW(widget);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; gtk_text_view_set_top_margin(GTK_TEXT_VIEW(view), 20);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; gtk_text_view_set_bottom_margin(GTK_TEXT_VIEW(view), 20);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; gtk_text_view_set_left_margin(GTK_TEXT_VIEW(view), 20);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; gtk_text_view_set_right_margin(GTK_TEXT_VIEW(view), 20);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; gtk_text_view_set_monospace(view, TRUE);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">if</span> (value) {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; buffer = gtk_text_view_get_buffer(view);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; gtk_text_buffer_set_text(buffer, value, -1);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; gtk_text_buffer_get_start_iter(buffer, &amp;start);</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; gtk_text_buffer_place_cursor(buffer, &amp;start);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; gtk_widget_set_size_request(GTK_WIDGET(view), 320, 300);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;}</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a"> 774</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gpointer *list,</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keyword">const</span> gchar *value, gchar *setting_name)</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;{</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; widget = <a class="code" href="remmina__public_8c.html#a616258d3226ec1f1ecee6ce18aba535b">remmina_public_create_combo_map</a>(list, value, FALSE, gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;plugin-&gt;domain);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 1, 1);</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;}</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div><div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965"> 796</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965">remmina_file_editor_create_combo</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gchar *list,</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keyword">const</span> gchar *value, gchar *setting_name)</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;{</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; widget = <a class="code" href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public_create_combo_entry</a>(list, value, FALSE);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 1, 1);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;}</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6"> 819</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; gint row, gint top, <span class="keyword">const</span> gchar *label, gboolean value,</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; gchar *setting_name)</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;{</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; widget = gtk_check_button_new_with_label(label);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, top, row, 1, 1);</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;}</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="keyword">static</span> GtkWidget *</div><div class="line"><a name="l00847"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa"> 847</a></span>&#160;<a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid, gint row, gint col, <span class="keyword">const</span> gchar *label,</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">const</span> gchar *value, gint type, gchar *setting_name)</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;{</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; GtkWidget *check;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; GtkWidget *hbox;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; gtk_widget_show(hbox);</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; gtk_grid_attach(GTK_GRID(grid), hbox, 1, row, 1, 1);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; check = gtk_check_button_new();</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; gtk_widget_show(check);</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), (value &amp;&amp; value[0] == <span class="charliteral">&#39;/&#39;</span>));</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), check, FALSE, FALSE, 0);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; widget = gtk_file_chooser_button_new(label, type);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(widget), value);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; g_signal_connect(G_OBJECT(check), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a>), widget);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a>(GTK_TOGGLE_BUTTON(check), widget);</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;}</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;<span class="comment">// used to filter out invalid characters for REMMINA_PROTOCOL_SETTING_TYPE_INT</span></div><div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0"> 885</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0">remmina_file_editor_int_setting_filter</a>(GtkEditable *editable, <span class="keyword">const</span> gchar *text,</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; gint length, gint *position, gpointer data)</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;{</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; length; i++) {</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">if</span> (!isdigit(text[i]) &amp;&amp; text[i] != <span class="charliteral">&#39;-&#39;</span>) {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; g_signal_stop_emission_by_name(G_OBJECT(editable), <span class="stringliteral">&quot;insert-text&quot;</span>);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; }</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; }</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;}</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;<span class="comment">// used to filter out invalid characters for REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</span></div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;<span class="comment">// &#39;.&#39; and &#39;,&#39; can&#39;t be used interchangeably! It depends on the language setting</span></div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;<span class="comment">// of the user.</span></div><div class="line"><a name="l00899"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f"> 899</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f">remmina_file_editor_double_setting_filter</a>(GtkEditable *editable, <span class="keyword">const</span> gchar *text,</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; gint length, gint *position, gpointer data)</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;{</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; length; i++) {</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keywordflow">if</span> (!isdigit(text[i]) &amp;&amp; text[i] != <span class="charliteral">&#39;-&#39;</span> &amp;&amp; text[i] != <span class="charliteral">&#39;.&#39;</span> &amp;&amp; text[i] != <span class="charliteral">&#39;,&#39;</span>) {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; g_signal_stop_emission_by_name(G_OBJECT(editable), <span class="stringliteral">&quot;insert-text&quot;</span>);</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; }</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; }</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;}</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;</div><div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0"> 910</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0">remmina_file_editor_create_int</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; gint row, gint col, <span class="keyword">const</span> gchar *label, <span class="keyword">const</span> gint value,</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; gint left, gint right, gchar *setting_name)</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;{</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 12, 0)</span></div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; gtk_widget_set_margin_start(widget, left);</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; gtk_widget_set_margin_end(widget, right);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; gtk_widget_set_margin_left(widget, left);</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; gtk_widget_set_margin_right(widget, right);</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col, row, 1, 1);</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col + 1, row, 1, 1);</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 300);</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="comment">// Convert int to str.</span></div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordtype">int</span> length = snprintf(NULL, 0, <span class="stringliteral">&quot;%d&quot;</span>, value) + 1; <span class="comment">// +1 &#39;\0&#39; byte</span></div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordtype">char</span> *str = malloc(length);</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; snprintf(str, length, <span class="stringliteral">&quot;%d&quot;</span>, value);</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), str);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; free(str);</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;insert-text&quot;</span>,</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0">remmina_file_editor_int_setting_filter</a>), NULL);</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;}</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;</div><div class="line"><a name="l00952"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80"> 952</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80">remmina_file_editor_create_double</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe,</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; GtkWidget *grid, gint row, gint col,</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keyword">const</span> gchar *label, gdouble value, gint left,</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; gint right, gchar *setting_name)</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;{</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; widget = gtk_label_new(label);</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 12, 0)</span></div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; gtk_widget_set_margin_start(widget, left);</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; gtk_widget_set_margin_end(widget, right);</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; gtk_widget_set_margin_left(widget, left);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; gtk_widget_set_margin_right(widget, right);</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col, row, 1, 1);</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, col + 1, row, 1, 1);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 300);</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">if</span> (setting_name)</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; gtk_widget_set_name(widget, setting_name);</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="comment">// Convert double to str.</span></div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordtype">int</span> length = snprintf(NULL, 0, <span class="stringliteral">&quot;%.8g&quot;</span>, value) + 1; <span class="comment">// +1 &#39;\0&#39; byte</span></div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordtype">char</span> *str = malloc(length);</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; snprintf(str, length, <span class="stringliteral">&quot;%f&quot;</span>, value);</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), str);</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; free(str);</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;insert-text&quot;</span>,</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f">remmina_file_editor_double_setting_filter</a>), NULL);</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">return</span> widget;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;}</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d"> 997</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, GtkWidget *grid,</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *settings)</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;{</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; gint grid_row = 0;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; gint grid_column = 0;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; gchar **strarr;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; gchar *setting_name;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keyword">const</span> gchar *escaped;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <span class="keywordflow">while</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; setting_name = (gchar *)(<a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(settings));</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keywordflow">switch</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a>) {</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>:</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <a class="code" href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae">remmina_file_editor_create_server</a>(gfe, settings, grid, grid_row);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>:</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583">remmina_file_editor_create_password</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; setting_name);</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; grid_row++;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>:</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <a class="code" href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5">remmina_file_editor_create_resolution</a>(gfe, settings, grid, grid_row);</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; grid_row ++;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a>:</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586">remmina_file_editor_create_assistance</a>(gfe, settings, grid, grid_row);</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; grid_row += 3;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>:</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; strarr = <a class="code" href="remmina__pref_8c.html#a745bbef1d48a7462f8db997821742395">remmina_pref_keymap_groups</a>();</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; priv-&gt;keymap_combo = <a class="code" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a>(gfe, grid,</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; grid_row + 1, 0,</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; _(<span class="stringliteral">&quot;Keyboard mapping&quot;</span>), (<span class="keyword">const</span> gpointer *)strarr,</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;keymap&quot;</span>),</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; setting_name);</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; g_strfreev(strarr);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; grid_row++;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>:</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; setting_name);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; grid_row++;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a>:</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; escaped = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name);</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; escaped = g_uri_unescape_string(escaped, NULL);</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7">remmina_file_editor_create_textarea</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>), escaped,</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; setting_name);</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; grid_row++;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>:</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; (<span class="keyword">const</span> gpointer *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>,</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; setting_name);</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>:</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965">remmina_file_editor_create_combo</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; (<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>,</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; setting_name);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>:</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a>(gfe, grid, grid_row, grid_column,</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, setting_name, FALSE),</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; setting_name);</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>:</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; GTK_FILE_CHOOSER_ACTION_OPEN, setting_name);</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a>:</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, setting_name),</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; setting_name);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a>:</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0">remmina_file_editor_create_int</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, setting_name, 0),</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; 0, 40, setting_name);</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; grid_row++;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a>:</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80">remmina_file_editor_create_double</a>(gfe, grid, grid_row, 0,</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; g_dgettext(priv-&gt;plugin-&gt;domain, settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>),</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <a class="code" href="remmina__file_8c.html#a4e31f91e2398f16844f58c1cf13582da">remmina_file_get_double</a>(priv-&gt;remmina_file, setting_name, 0.0f),</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; 0, 40, setting_name);</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, setting_name, widget);</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>)</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; gtk_widget_set_tooltip_text(widget, _((<span class="keyword">const</span> gchar *)settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>));</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; grid_row++;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="comment">/* If the setting wants compactness, move to the next column */</span></div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="keywordflow">if</span> (settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">compact</a>)</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; grid_column++;</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <span class="comment">/* Add a new settings row and move to the first column</span></div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment"> * if the setting doesn’t want the compactness</span></div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment"> * or we already have two columns */</span></div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="keywordflow">if</span> (!settings-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">compact</a> || grid_column &gt; 1) {</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; grid_row++;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; grid_column = 0;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; }</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; settings++;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; }</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;}</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c"> 1157</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c">remmina_file_editor_create_behavior_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;{</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <span class="keyword">const</span> gchar *cs;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="comment">/* The Behavior tab (implementation) */</span></div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL, _(<span class="stringliteral">&quot;Behavior&quot;</span>), 20, 2);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="comment">/* Execute Command frame */</span></div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <a class="code" href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a>(GTK_GRID(grid), _(<span class="stringliteral">&quot;Execute a Command&quot;</span>), 0, 1, 2);</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="comment">/* PRE connection command */</span></div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;precommand&quot;</span>);</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a>(gfe, grid, 2, 0, _(<span class="stringliteral">&quot;Before connecting&quot;</span>), cs, 24, 26, <span class="stringliteral">&quot;precommand&quot;</span>);</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; priv-&gt;behavior_precommand_entry = widget;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; gtk_entry_set_placeholder_text(GTK_ENTRY(widget), _(<span class="stringliteral">&quot;command %h %u %t %U %p %g --option&quot;</span>));</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; gtk_widget_set_tooltip_markup(widget, _(cmd_tips));</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="comment">/* POST connection command */</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;postcommand&quot;</span>);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a>(gfe, grid, 3, 0, _(<span class="stringliteral">&quot;After connecting&quot;</span>), cs, 24, 16, <span class="stringliteral">&quot;postcommand&quot;</span>);</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; priv-&gt;behavior_postcommand_entry = widget;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; gtk_entry_set_placeholder_text(GTK_ENTRY(widget), _(<span class="stringliteral">&quot;/path/to/command -opt1 arg %h %u %t -opt2 %U %p %g&quot;</span>));</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; gtk_widget_set_tooltip_markup(widget, _(cmd_tips));</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="comment">/* Startup frame */</span></div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <a class="code" href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a>(GTK_GRID(grid), _(<span class="stringliteral">&quot;Start-up&quot;</span>), 4, 1, 2);</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="comment">/* Autostart profile option */</span></div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; priv-&gt;behavior_autostart_check = <a class="code" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a>(gfe, grid, 6, 1, _(<span class="stringliteral">&quot;Auto-start this profile&quot;</span>),</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;enable-autostart&quot;</span>, FALSE), <span class="stringliteral">&quot;enable-autostart&quot;</span>);</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="comment">/* Startup frame */</span></div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <a class="code" href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a>(GTK_GRID(grid), _(<span class="stringliteral">&quot;Connection profile security&quot;</span>), 8, 1, 2);</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="comment">/* Autostart profile option */</span></div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; priv-&gt;behavior_lock_check = <a class="code" href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a>(gfe, grid, 10, 1, _(<span class="stringliteral">&quot;Require password to connect or edit the profile&quot;</span>),</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;profile-lock&quot;</span>, FALSE), <span class="stringliteral">&quot;profile-lock&quot;</span>);</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;}</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</span></div><div class="line"><a name="l01201"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7"> 1201</a></span>&#160;<span class="keyword">static</span> gpointer <a class="code" href="remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7">ssh_tunnel_auth_list</a>[] =</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;{</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <span class="stringliteral">&quot;0&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>),</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="stringliteral">&quot;1&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH identity file&quot;</span>),</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="stringliteral">&quot;2&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH agent&quot;</span>),</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="stringliteral">&quot;3&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Public key (automatic)&quot;</span>),</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="stringliteral">&quot;4&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Kerberos (GSSAPI)&quot;</span>),</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; NULL</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;};</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01212"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23"> 1212</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23">remmina_file_editor_create_ssh_tunnel_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe, <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a> ssh_setting)</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;{</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</span></div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keyword">const</span> gchar *cs;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; gchar *s;</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; gchar *p;</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; gint row = 0;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>)</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; <span class="comment">/* The SSH tab (implementation) */</span></div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL,</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; _(<span class="stringliteral">&quot;SSH Tunnel&quot;</span>), 9, 3);</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; widget = gtk_toggle_button_new_with_label(_(<span class="stringliteral">&quot;Enable SSH tunnel&quot;</span>));</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a>), gfe);</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; priv-&gt;ssh_tunnel_enabled_check = widget;</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; widget = gtk_check_button_new_with_label(_(<span class="stringliteral">&quot;Tunnel via loopback address&quot;</span>));</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 2, 1);</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; priv-&gt;ssh_tunnel_loopback_check = widget;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="comment">// 1</span></div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; row++;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <span class="comment">/* SSH Server group */</span></div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="keywordflow">switch</span> (ssh_setting) {</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>:</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; s = g_strdup_printf(_(<span class="stringliteral">&quot;Same server at port %i&quot;</span>), DEFAULT_SSH_PORT);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; widget = gtk_radio_button_new_with_label(NULL, s);</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; g_free(s);</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 3, 1);</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; priv-&gt;ssh_tunnel_server_default_radio = widget;</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="comment">// 2</span></div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; row++;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; widget = gtk_radio_button_new_with_label_from_widget(</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; GTK_RADIO_BUTTON(priv-&gt;ssh_tunnel_server_default_radio), _(<span class="stringliteral">&quot;Custom&quot;</span>));</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a>), gfe);</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; priv-&gt;ssh_tunnel_server_custom_radio = widget;</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 100);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; gtk_widget_set_tooltip_markup(widget, _(server_tips2));</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 2, 1);</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; priv-&gt;ssh_tunnel_server_entry = widget;</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; <span class="comment">// 3</span></div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; row++;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>:</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; priv-&gt;ssh_tunnel_server_default_radio = NULL;</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; priv-&gt;ssh_tunnel_server_custom_radio = NULL;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; priv-&gt;ssh_tunnel_server_entry = <a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(gfe, grid, 1, 0,</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; _(<span class="stringliteral">&quot;Server&quot;</span>), NULL, <span class="stringliteral">&quot;ssh_reverse_tunnel_server&quot;</span>);</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; gtk_widget_set_tooltip_markup(priv-&gt;ssh_tunnel_server_entry, _(server_tips));</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <span class="comment">// 2</span></div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; row++;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a>:</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <span class="keywordflow">case</span> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a>:</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; priv-&gt;ssh_tunnel_server_default_radio = NULL;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; priv-&gt;ssh_tunnel_server_custom_radio = NULL;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; priv-&gt;ssh_tunnel_server_entry = NULL;</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; }</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="comment">/* This is not used? */</span></div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; p = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;protocol_combo));</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a>) {</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(gfe, grid, row, 1,</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; _(<span class="stringliteral">&quot;Start-up path&quot;</span>), NULL, <span class="stringliteral">&quot;start-up-path&quot;</span>);</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;execpath&quot;</span>);</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; g_hash_table_insert(priv-&gt;setting_widgets, <span class="stringliteral">&quot;execpath&quot;</span>, widget);</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="comment">// 2</span></div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; row++;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; }</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="comment">/* SSH Authentication frame */</span></div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <a class="code" href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a>(GTK_GRID(grid), _(<span class="stringliteral">&quot;SSH Authentication&quot;</span>), row, 6, 1);</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="comment">// 5</span></div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; row += 2;</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; priv-&gt;ssh_tunnel_auth_combo = <a class="code" href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; _(<span class="stringliteral">&quot;Authentication type&quot;</span>),</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; (<span class="keyword">const</span> gpointer *)<a class="code" href="remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7">ssh_tunnel_auth_list</a>,</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_auth&quot;</span>), <span class="stringliteral">&quot;ssh_tunnel_auth&quot;</span>);</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; row++;</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a> ||</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>) {</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; priv-&gt;ssh_tunnel_username_entry =</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; _(<span class="stringliteral">&quot;Username&quot;</span>), NULL, <span class="stringliteral">&quot;ssh_tunnel_username&quot;</span>);</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; <span class="comment">// 5</span></div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; row++;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; }</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; widget = <a class="code" href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583">remmina_file_editor_create_password</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; _(<span class="stringliteral">&quot;Password&quot;</span>),</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>),</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>);</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; priv-&gt;ssh_tunnel_auth_password = widget;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; row++;</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; priv-&gt;ssh_tunnel_privatekey_chooser = <a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; _(<span class="stringliteral">&quot;SSH private key file&quot;</span>),</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>),</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; GTK_FILE_CHOOSER_ACTION_OPEN, <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>);</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; row++;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; priv-&gt;ssh_tunnel_certfile_chooser = <a class="code" href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a>(gfe, grid, row, 0,</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; _(<span class="stringliteral">&quot;SSH certificate file&quot;</span>),</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>),</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; GTK_FILE_CHOOSER_ACTION_OPEN, <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; row++;</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Password to unlock private key&quot;</span>));</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, row, 2, 1);</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 300);</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; gtk_widget_set_hexpand(widget, TRUE);</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; priv-&gt;ssh_tunnel_passphrase = widget;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; row++;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; <span class="comment">/* Set the values */</span></div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_server&quot;</span>);</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>) {</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_enabled_check),</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, FALSE));</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_loopback_check),</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_loopback&quot;</span>, FALSE));</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cs ? priv-&gt;ssh_tunnel_server_custom_radio : priv-&gt;ssh_tunnel_server_default_radio), TRUE);</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; gtk_entry_set_text(GTK_ENTRY(priv-&gt;ssh_tunnel_server_entry),</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ssh_setting == <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>) {</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_enabled_check),</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, FALSE));</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_loopback_check),</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_loopback&quot;</span>, FALSE));</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; gtk_entry_set_text(GTK_ENTRY(priv-&gt;ssh_tunnel_server_entry),</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; }</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a>(NULL, gfe, ssh_setting);</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; gtk_widget_show_all(grid);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; g_free(p);</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;}</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;</div><div class="line"><a name="l01380"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38"> 1380</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38">remmina_file_editor_create_all_settings</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;{</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> notes_settings[] =</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; {</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a>, <span class="stringliteral">&quot;notes_text&quot;</span>, NULL, FALSE, NULL, NULL },</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; };</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea">remmina_file_editor_create_notebook_container</a>(gfe);</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="comment">/* The Basic tab */</span></div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; <span class="keywordflow">if</span> (priv-&gt;plugin-&gt;basic_settings) {</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL, _(<span class="stringliteral">&quot;Basic&quot;</span>), 20, 2);</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a>(gfe, grid, priv-&gt;plugin-&gt;basic_settings);</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; }</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="comment">/* The Advanced tab */</span></div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="keywordflow">if</span> (priv-&gt;plugin-&gt;advanced_settings) {</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL, _(<span class="stringliteral">&quot;Advanced&quot;</span>), 20, 2);</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a>(gfe, grid, priv-&gt;plugin-&gt;advanced_settings);</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; }</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; <span class="comment">/* The Behavior tab */</span></div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c">remmina_file_editor_create_behavior_tab</a>(gfe);</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="comment">/* The SSH tab */</span></div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <a class="code" href="remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23">remmina_file_editor_create_ssh_tunnel_tab</a>(gfe, priv-&gt;plugin-&gt;ssh_setting);</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; <span class="comment">/* Notes tab */</span></div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; grid = <a class="code" href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a>(gfe, NULL, _(<span class="stringliteral">&quot;Notes&quot;</span>), 1, 1);</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a>(gfe, grid, notes_settings);</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;}</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;</div><div class="line"><a name="l01417"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16"> 1417</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16">remmina_file_editor_protocol_combo_on_changed</a>(GtkComboBox *combo, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;{</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; gchar *protocol;</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keywordflow">if</span> (priv-&gt;config_container) {</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; gtk_widget_destroy(priv-&gt;config_container);</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; priv-&gt;config_container = NULL;</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; gtk_widget_destroy(priv-&gt;config_viewport);</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; priv-&gt;config_viewport = NULL;</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; gtk_widget_destroy(priv-&gt;config_scrollable);</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; priv-&gt;config_scrollable = NULL;</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; }</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; priv-&gt;server_combo = NULL;</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; priv-&gt;resolution_iws_radio = NULL;</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; priv-&gt;resolution_auto_radio = NULL;</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; priv-&gt;resolution_custom_radio = NULL;</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; priv-&gt;resolution_custom_combo = NULL;</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; priv-&gt;keymap_combo = NULL;</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; priv-&gt;ssh_tunnel_enabled_check = NULL;</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; priv-&gt;ssh_tunnel_loopback_check = NULL;</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; priv-&gt;ssh_tunnel_server_default_radio = NULL;</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; priv-&gt;ssh_tunnel_server_custom_radio = NULL;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; priv-&gt;ssh_tunnel_server_entry = NULL;</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; priv-&gt;ssh_tunnel_username_entry = NULL;</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; priv-&gt;ssh_tunnel_auth_combo = NULL;</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; priv-&gt;ssh_tunnel_auth_password = NULL;</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; priv-&gt;ssh_tunnel_privatekey_chooser = NULL;</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; priv-&gt;ssh_tunnel_certfile_chooser = NULL;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; g_hash_table_remove_all(priv-&gt;setting_widgets);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; protocol = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(combo);</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; <span class="keywordflow">if</span> (protocol) {</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; priv-&gt;plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)<a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>,</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; protocol);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; g_free(protocol);</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38">remmina_file_editor_create_all_settings</a>(gfe);</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; }</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;}</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;</div><div class="line"><a name="l01461"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb"> 1461</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb">remmina_file_editor_save_behavior_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;{</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;precommand&quot;</span>, gtk_entry_get_text(GTK_ENTRY(priv-&gt;behavior_precommand_entry)));</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;postcommand&quot;</span>, gtk_entry_get_text(GTK_ENTRY(priv-&gt;behavior_postcommand_entry)));</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; gboolean autostart_enabled = (priv-&gt;behavior_autostart_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;behavior_autostart_check)) : FALSE);</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;enable-autostart&quot;</span>, autostart_enabled);</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; gboolean lock_enabled = (priv-&gt;behavior_lock_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;behavior_lock_check)) : FALSE);</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;profile-lock&quot;</span>, lock_enabled);</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;}</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;</div><div class="line"><a name="l01475"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7"> 1475</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7">remmina_file_editor_save_ssh_tunnel_tab</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;{</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; gboolean ssh_tunnel_enabled;</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <span class="keywordtype">int</span> ssh_tunnel_auth;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; ssh_tunnel_enabled = (priv-&gt;ssh_tunnel_enabled_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_enabled_check)) : FALSE);</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file,</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_loopback&quot;</span>,</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; (priv-&gt;ssh_tunnel_loopback_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_loopback_check)) : FALSE));</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_enabled&quot;</span>, ssh_tunnel_enabled);</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_auth&quot;</span>,</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;ssh_tunnel_auth_combo)));</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_username&quot;</span>,</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; (ssh_tunnel_enabled ? gtk_entry_get_text(GTK_ENTRY(priv-&gt;ssh_tunnel_username_entry)) : NULL));</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_server&quot;</span>,</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; (ssh_tunnel_enabled &amp;&amp; priv-&gt;ssh_tunnel_server_entry &amp;&amp; (priv-&gt;ssh_tunnel_server_custom_radio == NULL || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;ssh_tunnel_server_custom_radio))) ? gtk_entry_get_text(GTK_ENTRY(priv-&gt;ssh_tunnel_server_entry)) : NULL));</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; ssh_tunnel_auth = gtk_combo_box_get_active(GTK_COMBO_BOX(priv-&gt;ssh_tunnel_auth_combo));</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_auth&quot;</span>,</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; ssh_tunnel_auth);</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; </div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; <span class="comment">// If box is unchecked for private key and certfile file choosers,</span></div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; <span class="comment">// set the string to NULL in the remmina file </span></div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; <span class="keywordflow">if</span> (gtk_widget_get_sensitive(priv-&gt;ssh_tunnel_privatekey_chooser)) {</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>,</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; (priv-&gt;ssh_tunnel_privatekey_chooser ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv-&gt;ssh_tunnel_privatekey_chooser)) : NULL));</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; }</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_privatekey&quot;</span>, NULL);</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; }</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; </div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keywordflow">if</span> (gtk_widget_get_sensitive(priv-&gt;ssh_tunnel_certfile_chooser)) {</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>,</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; (priv-&gt;ssh_tunnel_certfile_chooser ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv-&gt;ssh_tunnel_certfile_chooser)) : NULL));</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; }</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;ssh_tunnel_certfile&quot;</span>, NULL);</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; }</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>,</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; (ssh_tunnel_enabled &amp;&amp; (ssh_tunnel_auth == <a class="code" href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04a7d995a7868d2d2f81e9dd2f898b206fe">SSH_AUTH_PASSWORD</a>)) ? gtk_entry_get_text(GTK_ENTRY(priv-&gt;ssh_tunnel_auth_password)) : NULL);</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; priv-&gt;remmina_file,</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; <span class="stringliteral">&quot;ssh_tunnel_passphrase&quot;</span>,</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; (ssh_tunnel_enabled &amp;&amp; (ssh_tunnel_auth == <a class="code" href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04aeba5f4ff7657d7b15519556793ee8930">SSH_AUTH_PUBLICKEY</a> || ssh_tunnel_auth == <a class="code" href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04a9f6024449a620d679eab2c09ea77877e">SSH_AUTH_AUTO_PUBLICKEY</a>)) ? gtk_entry_get_text(GTK_ENTRY(priv-&gt;ssh_tunnel_passphrase)) : NULL);</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;}</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;</div><div class="line"><a name="l01536"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca"> 1536</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> * gfe,</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; gchar * setting_name_to_validate,</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; gconstpointer value,</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; GError ** err)</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;{</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; <span class="keywordflow">if</span> (!setting_name_to_validate || !value || !gfe) {</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; <span class="keywordflow">if</span> (!setting_name_to_validate) {</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; g_critical(_(<span class="stringliteral">&quot;(%s: %i): Can&#39;t validate setting &#39;%s&#39; since &#39;value&#39; or &#39;gfe&#39; &quot;</span></div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; <span class="stringliteral">&quot;are NULL!&quot;</span>),</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; __func__, __LINE__, setting_name_to_validate);</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; g_critical(_(<span class="stringliteral">&quot;(%s: %i): Can&#39;t validate user input since &quot;</span></div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <span class="stringliteral">&quot;&#39;setting_name_to_validate&#39;, &#39;value&#39; or &#39;gfe&#39; are NULL!&quot;</span>),</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; __func__, __LINE__);</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; }</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; g_set_error(err, 1, 1, _(<span class="stringliteral">&quot;Internal error.&quot;</span>));</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; }</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; <span class="keywordflow">if</span> (strcmp(setting_name_to_validate, <span class="stringliteral">&quot;notes_text&quot;</span>) == 0) {</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="comment">// Not a plugin setting. Bail out early.</span></div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; }</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting_iter;</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *protocol_plugin;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; protocol_plugin = priv-&gt;plugin;</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aae09a7e2c978cc36e85d0f295518978d">basic_settings</a>;</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; <span class="comment">// gboolean found = FALSE;</span></div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <span class="keywordflow">if</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a> == NULL) {</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; g_error(<span class="stringliteral">&quot;Internal error: a setting name in protocol plugin %s is &quot;</span></div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; <span class="stringliteral">&quot;null. Please fix RemminaProtocolSetting struct content.&quot;</span>,</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">name</a>);</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((gchar *)setting_name_to_validate) {</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; <span class="keywordflow">if</span> (strcmp((gchar *)setting_name_to_validate, setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>) == 0) {</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <span class="comment">// found = TRUE;</span></div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; gpointer validator_data = setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">validator_data</a>;</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; GCallback validator = setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">validator</a>;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; <span class="comment">// Default behaviour is that everything is valid,</span></div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="comment">// except a validator is given and its returned GError is not NULL.</span></div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; GError *err_ret = NULL;</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; g_debug(<span class="stringliteral">&quot;Checking setting &#39;%s&#39; for validation.&quot;</span>, setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>);</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; <span class="keywordflow">if</span> (validator != NULL) {</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; <span class="comment">// Looks weird but it calls the setting&#39;s validator</span></div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; <span class="comment">// function using setting_name_to_validate, value and</span></div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; <span class="comment">// validator_data as parameters and it returns a GError*.</span></div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; err_ret = ((GError * (*)(gpointer, gconstpointer, gpointer)) validator)(setting_name_to_validate, value, validator_data);</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; }</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; <span class="keywordflow">if</span> (err_ret) {</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; g_debug(<span class="stringliteral">&quot;it has a validator function and it had an error!&quot;</span>);</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; <span class="comment">// pass err (returned value) to function caller.</span></div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; *err = err_ret;</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; }</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; }</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; }</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; setting_iter++;</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; }</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="comment">// if (!found) {</span></div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; <span class="comment">// TOO VERBOSE:</span></div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; <span class="comment">// g_warning(&quot;%s is not a plugin setting!&quot;, setting_name_to_validate);</span></div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; }</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;}</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;</div><div class="line"><a name="l01614"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9"> 1614</a></span>&#160;<span class="keyword">static</span> GError *<a class="code" href="remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9">remmina_file_editor_update_settings</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> * gfe,</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; GtkWidget ** failed_widget)</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;{</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; GHashTableIter iter;</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; gpointer key;</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; gpointer widget;</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; GtkTextBuffer *buffer;</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; gchar *escaped, *unescaped;</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; GtkTextIter start, end;</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; GError *err = NULL;</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; *failed_widget = NULL;</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; g_hash_table_iter_init(&amp;iter, priv-&gt;setting_widgets);</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; <span class="keywordflow">while</span> (g_hash_table_iter_next(&amp;iter, &amp;key, &amp;widget)) {</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; </div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; <span class="comment">// We don&#39;t want to save or validate grayed-out settings.</span></div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; <span class="comment">// If widget is a file chooser, it was made not sensitive because</span></div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; <span class="comment">// the box was unchecked. In that case, don&#39;t continue. The </span></div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; <span class="comment">// relevant file strings will be set to NULL in the remmina file.</span></div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; <span class="keywordflow">if</span> (!gtk_widget_get_sensitive(GTK_WIDGET(widget)) &amp;&amp; !GTK_IS_FILE_CHOOSER(widget)) {</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; g_debug(<span class="stringliteral">&quot;Grayed-out setting-widget &#39;%s&#39; will not be saved.&quot;</span>,</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; gtk_widget_get_name(widget));</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; }</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <span class="keywordflow">if</span> (GTK_IS_ENTRY(widget)) {</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; <span class="keyword">const</span> gchar *value = gtk_entry_get_text(GTK_ENTRY(widget));</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, value, &amp;err)) {</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; }</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GTK_IS_TEXT_VIEW(widget)) {</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; gtk_text_buffer_get_start_iter(buffer, &amp;start);</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; gtk_text_buffer_get_end_iter(buffer, &amp;end);</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; unescaped = gtk_text_buffer_get_text(buffer, &amp;start, &amp;end, FALSE);</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; escaped = g_uri_escape_string(unescaped, NULL, TRUE);</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, escaped, &amp;err)) {</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160; }</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, escaped);</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; g_free(escaped);</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GTK_IS_COMBO_BOX(widget)) {</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; gchar *value = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(widget));</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, value, &amp;err)) {</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; }</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GTK_IS_FILE_CHOOSER(widget)) {</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160; gchar *value = gtk_widget_get_sensitive(GTK_WIDGET(widget)) ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)) : NULL;</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <span class="keywordflow">if</span> (!gtk_widget_get_sensitive(GTK_WIDGET(widget))) {</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; }</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, value, &amp;err)) {</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; g_free(value);</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; }</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; g_free(value);</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GTK_IS_TOGGLE_BUTTON(widget)) {</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; gboolean value = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a>(gfe, (gchar *)key, &amp;value, &amp;err)) {</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; <span class="comment">// Error while validating!</span></div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; <span class="comment">// err should be set now.</span></div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; *failed_widget = widget;</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; }</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, (gchar *)key, value);</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; }</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; }</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; <span class="keywordflow">return</span> err;</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; }</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;}</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;</div><div class="line"><a name="l01719"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5"> 1719</a></span>&#160;<span class="keyword">static</span> GError *<a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> * gfe,</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; GtkWidget ** failed_widget)</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;{</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; <span class="keywordtype">int</span> res_w, res_h;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; gchar *custom_resolution;</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a> res_mode;</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;name&quot;</span>, gtk_entry_get_text(GTK_ENTRY(priv-&gt;name_entry)));</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;labels&quot;</span>, gtk_entry_get_text(GTK_ENTRY(priv-&gt;labels_entry)));</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;group&quot;</span>,</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; (priv-&gt;group_combo ? <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;group_combo)) : NULL));</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;protocol&quot;</span>,</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;protocol_combo)));</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;server&quot;</span>,</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; (priv-&gt;server_combo ? <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;server_combo)) : NULL));</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; <span class="keywordflow">if</span> (priv-&gt;resolution_auto_radio) {</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; <span class="keywordflow">if</span> (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;resolution_auto_radio))) {</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; <span class="comment">/* Resolution is set to auto (which means: Use client fullscreen resolution, aka use client resolution) */</span></div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160; res_w = res_h = 0;</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a>;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;resolution_iws_radio))) {</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; <span class="comment">/* Resolution is set to initial window size */</span></div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; res_w = res_h = 0;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a>;</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; <span class="comment">/* Resolution is set to a value from the list */</span></div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160; custom_resolution = <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;resolution_custom_combo));</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__public_8c.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public_split_resolution_string</a>(custom_resolution, &amp;res_w, &amp;res_h))</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a>;</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; res_mode = <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a>;</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; g_free(custom_resolution);</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; }</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;resolution_mode&quot;</span>, res_mode);</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;resolution_width&quot;</span>, res_w);</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;resolution_height&quot;</span>, res_h);</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; }</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; <span class="keywordflow">if</span> (priv-&gt;assistance_toggle){</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; <span class="keywordflow">if</span> (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv-&gt;assistance_toggle))) {</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;assistance_file&quot;</span>, gtk_entry_get_text(priv-&gt;assistance_file));</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;assistance_pass&quot;</span>, gtk_entry_get_text(priv-&gt;assistance_password));</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;assistance_mode&quot;</span>, 1);</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; }<span class="keywordflow">else</span>{</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;assistance_mode&quot;</span>, 0);</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; }</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; </div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160; }</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="keywordflow">if</span> (priv-&gt;keymap_combo)</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(priv-&gt;remmina_file, <span class="stringliteral">&quot;keymap&quot;</span>,</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; <a class="code" href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a>(GTK_COMBO_BOX(priv-&gt;keymap_combo)));</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb">remmina_file_editor_save_behavior_tab</a>(gfe);</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7">remmina_file_editor_save_ssh_tunnel_tab</a>(gfe);</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9">remmina_file_editor_update_settings</a>(gfe, failed_widget);</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;}</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;</div><div class="line"><a name="l01785"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6"> 1785</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6">remmina_file_editor_on_default</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;{</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *gf;</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; GtkWidget *dialog;</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160; GtkWidget *failed_widget = NULL;</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; GError *err = <a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(gfe, &amp;failed_widget);</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; g_warning(_(<span class="stringliteral">&quot;Couldn&#39;t validate user input. %s&quot;</span>), err-&gt;message);</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(gfe, failed_widget, err);</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160; }</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160; gf = <a class="code" href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; <a class="code" href="remmina__file_8c.html#ab03b042504c09c1ad880ac126a703114">remmina_file_set_filename</a>(gf, <a class="code" href="rcw_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a>);</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160; <span class="comment">/* Clear properties that should never be default */</span></div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;name&quot;</span>, NULL);</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;server&quot;</span>, NULL);</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;password&quot;</span>, NULL);</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;precommand&quot;</span>, NULL);</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;postcommand&quot;</span>, NULL);</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;ssh_tunnel_server&quot;</span>, NULL);</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>, NULL);</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;ssh_tunnel_passphrase&quot;</span>, NULL);</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160; <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(gf);</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; <a class="code" href="remmina__file_8c.html#abd2f06bf0a5ddcf7156e5ef7d0c8d4d7">remmina_file_free</a>(gf);</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; dialog = gtk_message_dialog_new(GTK_WINDOW(gfe), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO,</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; GTK_BUTTONS_OK, _(<span class="stringliteral">&quot;Default settings saved.&quot;</span>));</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; gtk_widget_destroy(dialog);</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;}</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;</div><div class="line"><a name="l01823"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad"> 1823</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad">remmina_file_editor_on_save</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;{</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; GtkWidget *failed_widget = NULL;</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160; GError *err = <a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(gfe, &amp;failed_widget);</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; g_warning(_(<span class="stringliteral">&quot;Couldn&#39;t validate user input. %s&quot;</span>), err-&gt;message);</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(gfe, failed_widget, err);</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; }</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a>(gfe);</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160; <a class="code" href="remmina__icon_8c.html#af80ed314f91d653237249d839c7fc3b2">remmina_icon_populate_menu</a>();</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; gtk_widget_destroy(GTK_WIDGET(gfe));</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;}</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;</div><div class="line"><a name="l01843"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25"> 1843</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25">remmina_file_editor_on_connect</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;{</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *gf;</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160; GtkWidget *failed_widget = NULL;</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; GError *err = <a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(gfe, &amp;failed_widget);</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; g_warning(_(<span class="stringliteral">&quot;Couldn&#39;t validate user input. %s&quot;</span>), err-&gt;message);</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(gfe, failed_widget, err);</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; }</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; gf = <a class="code" href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; <span class="comment">/* Put server into name for &quot;Quick Connect&quot; */</span></div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(gf) == NULL)</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;name&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gf, <span class="stringliteral">&quot;server&quot;</span>));</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; gtk_widget_destroy(GTK_WIDGET(gfe));</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; gf-&gt;prevent_saving = TRUE;</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; <a class="code" href="rcw_8c.html#a1b7a771392e15e527005305e71cc2546">rcw_open_from_file</a>(gf);</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;}</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;</div><div class="line"><a name="l01865"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e"> 1865</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e">remmina_file_editor_on_save_connect</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;{</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *gf;</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; GtkWidget *failed_widget = NULL;</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; GError *err = <a class="code" href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a>(gfe, &amp;failed_widget);</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; <span class="keywordflow">if</span> (err) {</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; g_warning(_(<span class="stringliteral">&quot;Couldn&#39;t validate user input. %s&quot;</span>), err-&gt;message);</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a>(gfe, failed_widget, err);</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; }</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a>(gfe);</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; <a class="code" href="remmina__icon_8c.html#af80ed314f91d653237249d839c7fc3b2">remmina_icon_populate_menu</a>();</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; gf = <a class="code" href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file);</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160; <span class="comment">/* Put server into name for Quick Connect */</span></div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(gf) == NULL)</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(gf, <span class="stringliteral">&quot;name&quot;</span>, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gf, <span class="stringliteral">&quot;server&quot;</span>));</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; gtk_widget_destroy(GTK_WIDGET(gfe));</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; <a class="code" href="rcw_8c.html#a1b7a771392e15e527005305e71cc2546">rcw_open_from_file</a>(gf);</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;}</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;</div><div class="line"><a name="l01892"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3"> 1892</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3">remmina_file_editor_on_cancel</a>(GtkWidget *button, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;{</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; gtk_widget_destroy(GTK_WIDGET(gfe));</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;}</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;</div><div class="line"><a name="l01898"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a9afd8d41c66f547320930eb331f3124d"> 1898</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a9afd8d41c66f547320930eb331f3124d">remmina_file_editor_init</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;{</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160; priv = g_new0(<a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a>, 1);</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160; gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a> = priv;</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; <span class="comment">/* Create the editor dialog */</span></div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; gtk_window_set_title(GTK_WINDOW(gfe), _(<span class="stringliteral">&quot;Remote Connection Profile&quot;</span>));</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;_Cancel&quot;</span>)), GTK_RESPONSE_CANCEL);</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3">remmina_file_editor_on_cancel</a>), gfe);</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; <span class="comment">/* Default button */</span></div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;Save as Default&quot;</span>)), GTK_RESPONSE_OK);</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; gtk_widget_set_tooltip_text(GTK_WIDGET(widget), _(<span class="stringliteral">&quot;Use the current settings as the default for all new connection profiles&quot;</span>));</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6">remmina_file_editor_on_default</a>), gfe);</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;_Save&quot;</span>)), GTK_RESPONSE_APPLY);</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad">remmina_file_editor_on_save</a>), gfe);</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; gtk_widget_set_sensitive(widget, FALSE);</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; priv-&gt;save_button = widget;</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;Connect&quot;</span>)), GTK_RESPONSE_ACCEPT);</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25">remmina_file_editor_on_connect</a>), gfe);</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; widget = gtk_dialog_add_button(GTK_DIALOG(gfe), (_(<span class="stringliteral">&quot;_Save and Connect&quot;</span>)), GTK_RESPONSE_OK);</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; gtk_widget_set_can_default(widget, TRUE);</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e">remmina_file_editor_on_save_connect</a>), gfe);</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; gtk_dialog_set_default_response(GTK_DIALOG(gfe), GTK_RESPONSE_OK);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; gtk_window_set_default_size(GTK_WINDOW(gfe), 800, 600);</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; g_signal_connect(G_OBJECT(gfe), <span class="stringliteral">&quot;destroy&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f">remmina_file_editor_destroy</a>), NULL);</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; g_signal_connect(G_OBJECT(gfe), <span class="stringliteral">&quot;realize&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b">remmina_file_editor_on_realize</a>), NULL);</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; priv-&gt;setting_widgets = g_hash_table_new(g_str_hash, g_str_equal);</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>(GTK_WIDGET(gfe));</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;}</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;</div><div class="line"><a name="l01941"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b"> 1941</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b">remmina_file_editor_iterate_protocol</a>(gchar *protocol, <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin, gpointer data)</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;{</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe = REMMINA_FILE_EDITOR(data);</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; GtkListStore *store;</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; GtkTreeIter iter;</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; gboolean first;</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; store = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;protocol_combo)));</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; first = !gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &amp;iter);</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; gtk_list_store_append(store, &amp;iter);</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; gtk_list_store_set(store, &amp;iter, 0, protocol, 1, g_dgettext(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">domain</a>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a4ac66b7ebefb9bd8167737eb1af83cde">description</a>), 2,</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; ((<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)plugin)-&gt;icon_name, -1);</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; <span class="keywordflow">if</span> (first || g_strcmp0(protocol, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;remmina_file, <span class="stringliteral">&quot;protocol&quot;</span>)) == 0)</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; gtk_combo_box_set_active_iter(GTK_COMBO_BOX(gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>-&gt;protocol_combo), &amp;iter);</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;}</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;</div><div class="line"><a name="l01963"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#add382dd8f40444b928e78b293a86a257"> 1963</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;{</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; gtk_widget_set_sensitive(priv-&gt;group_combo, TRUE);</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; gtk_widget_set_sensitive(priv-&gt;save_button, TRUE);</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;}</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;</div><div class="line"><a name="l01973"></a><span class="lineno"><a class="line" href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b"> 1973</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b">remmina_file_editor_entry_on_changed</a>(GtkEditable *editable, <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;{</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(priv-&gt;remmina_file) == NULL) {</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(priv-&gt;remmina_file);</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; <span class="comment">/* TODO: Probably to be removed */</span></div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; <a class="code" href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(gfe);</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; <a class="code" href="remmina__file_8c.html#a55f66f2bb81bf427d6837e1adb7fe1d4">remmina_file_delete</a>(<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(priv-&gt;remmina_file));</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(priv-&gt;remmina_file);</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <a class="code" href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(gfe);</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; }</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;}</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;</div><div class="line"><a name="l01990"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#a3866832d550ceac91d608900df4c8056"> 1990</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe)</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;{</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(priv-&gt;remmina_file) == NULL) {</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(priv-&gt;remmina_file);</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; <a class="code" href="remmina__file_8c.html#a55f66f2bb81bf427d6837e1adb7fe1d4">remmina_file_delete</a>(<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(priv-&gt;remmina_file));</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; <a class="code" href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a>(priv-&gt;remmina_file);</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; }</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;}</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;</div><div class="line"><a name="l02004"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#a08327d6951c345808628dbb5784aba06"> 2004</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;{</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; <a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe;</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> *priv;</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; GtkWidget *grid;</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; gchar *groups;</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; gchar *s;</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; <span class="keyword">const</span> gchar *cs;</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; gfe = REMMINA_FILE_EDITOR(g_object_new(REMMINA_TYPE_FILE_EDITOR, NULL));</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; priv = gfe-&gt;<a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; priv-&gt;remmina_file = remminafile;</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(remminafile) == NULL)</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; gtk_dialog_set_response_sensitive(GTK_DIALOG(gfe), GTK_RESPONSE_APPLY, FALSE);</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; <span class="comment">/* Create the &quot;Profile&quot; group on the top (for name and protocol) */</span></div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; grid = gtk_grid_new();</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; gtk_widget_show(grid);</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; gtk_grid_set_row_spacing(GTK_GRID(grid), 4);</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; gtk_grid_set_column_spacing(GTK_GRID(grid), 8);</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; gtk_grid_set_column_homogeneous(GTK_GRID(grid), TRUE);</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(grid), 8);</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(gfe))), grid, FALSE, FALSE, 2);</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; <span class="comment">// remmina_public_create_group(GTK_GRID(grid), _(&quot;Profile&quot;), 0, 4, 3);</span></div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; gboolean profile_file_exists = (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(remminafile) != NULL);</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; <span class="comment">/* Profile: Name */</span></div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, 3, 2, 1);</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; gtk_grid_set_column_spacing(GTK_GRID(grid), 10);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, 3, 3, 1);</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 100);</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; priv-&gt;name_entry = widget;</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; <span class="keywordflow">if</span> (!profile_file_exists) {</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), _(<span class="stringliteral">&quot;Quick Connect&quot;</span>));</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 16, 0)</span></div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; gtk_entry_grab_focus_without_selecting(GTK_ENTRY(widget));</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;changed&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b">remmina_file_editor_entry_on_changed</a>), gfe);</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;name&quot;</span>);</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; }</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; <span class="comment">/* Profile: Group */</span></div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Group&quot;</span>));</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, 6, 2, 1);</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; groups = <a class="code" href="remmina__file__manager_8c.html#a536edeef371d907ab3936f4d65c3003d">remmina_file_manager_get_groups</a>();</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; priv-&gt;group_combo = <a class="code" href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public_create_combo_entry</a>(groups, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;group&quot;</span>), FALSE);</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; g_free(groups);</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; gtk_widget_show(priv-&gt;group_combo);</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; gtk_grid_attach(GTK_GRID(grid), priv-&gt;group_combo, 1, 6, 3, 1);</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; gtk_widget_set_sensitive(priv-&gt;group_combo, FALSE);</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; s = g_strdup_printf(_(<span class="stringliteral">&quot;Use &#39;%s&#39; as subgroup delimiter&quot;</span>), <span class="stringliteral">&quot;/&quot;</span>);</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; gtk_widget_set_tooltip_text(priv-&gt;group_combo, s);</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; g_free(s);</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; <span class="comment">/* Profile: Labels */</span></div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Labels&quot;</span>));</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, 9, 2, 1);</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; gtk_grid_set_column_spacing(GTK_GRID(grid), 10);</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; widget = gtk_entry_new();</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, 9, 3, 1);</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; gtk_entry_set_max_length(GTK_ENTRY(widget), 255);</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; priv-&gt;labels_entry = widget;</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; <span class="keywordflow">if</span> (!profile_file_exists) {</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; gtk_widget_set_tooltip_text(widget, _(<span class="stringliteral">&quot;Label1,Label2&quot;</span>));</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 16, 0)</span></div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160; gtk_entry_grab_focus_without_selecting(GTK_ENTRY(widget));</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;changed&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b">remmina_file_editor_entry_on_changed</a>), gfe);</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; cs = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;labels&quot;</span>);</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; gtk_entry_set_text(GTK_ENTRY(widget), cs ? cs : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160; }</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; <span class="comment">/* Profile: Protocol */</span></div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160; widget = gtk_label_new(_(<span class="stringliteral">&quot;Protocol&quot;</span>));</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; gtk_widget_set_valign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; gtk_widget_set_halign(widget, GTK_ALIGN_START);</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 0, 12, 2, 1);</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; widget = <a class="code" href="remmina__public_8c.html#ab4a593956dfe89aba3242a5c264a681f">remmina_public_create_combo</a>(TRUE);</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160; gtk_grid_attach(GTK_GRID(grid), widget, 1, 12, 3, 1);</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; priv-&gt;protocol_combo = widget;</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, <a class="code" href="remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b">remmina_file_editor_iterate_protocol</a>, gfe);</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;changed&quot;</span>, G_CALLBACK(<a class="code" href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16">remmina_file_editor_protocol_combo_on_changed</a>), gfe);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160; <span class="comment">/* Create the &quot;Preference&quot; frame */</span></div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; widget = gtk_event_box_new();</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(gfe))), widget, TRUE, TRUE, 2);</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; priv-&gt;config_box = widget;</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160; priv-&gt;config_container = NULL;</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160; priv-&gt;config_scrollable = NULL;</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; <a class="code" href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16">remmina_file_editor_protocol_combo_on_changed</a>(GTK_COMBO_BOX(priv-&gt;protocol_combo), gfe);</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160; <a class="code" href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(gfe);</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; <span class="keywordflow">return</span> GTK_WIDGET(gfe);</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;}</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;</div><div class="line"><a name="l02133"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#aa4e8657ca722e4cce3f3c42c0cfec51e"> 2133</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;{</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a>(NULL, NULL);</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;}</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;</div><div class="line"><a name="l02139"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#ab563344276cbcdf0fcea05b0b64c7aeb"> 2139</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a>(<span class="keyword">const</span> gchar *server, <span class="keyword">const</span> gchar *protocol)</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;{</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a>();</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160; <span class="keywordflow">if</span> (server)</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;server&quot;</span>, server);</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160; <span class="keywordflow">if</span> (protocol)</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, <span class="stringliteral">&quot;protocol&quot;</span>, protocol);</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(remminafile);</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;}</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;</div><div class="line"><a name="l02153"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#aa5c50852f8569f075eec5d5db30c2ebf"> 2153</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a>(<span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;{</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; GtkWidget *dialog;</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; remminafile = <a class="code" href="remmina__file_8c.html#ac1685edf35a793a396ce039d7eec5343">remmina_file_copy</a>(filename);</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; <span class="keywordflow">if</span> (remminafile) {</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(remminafile);</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; _(<span class="stringliteral">&quot;Could not find the file “%s”.&quot;</span>), filename);</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; gtk_widget_destroy(dialog);</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160; }</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;}</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;</div><div class="line"><a name="l02172"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#aa9345cfe3fb32d326b652e96ee55eaea"> 2172</a></span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a>(<span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;{</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; remminafile = <a class="code" href="remmina__file__manager_8c.html#af7b58659604660eb0cb40b0e0f8348ab">remmina_file_manager_load_file</a>(filename);</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; <span class="keywordflow">if</span> (remminafile) {</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;profile-lock&quot;</span>, FALSE) &amp;&amp; <a class="code" href="remmina__unlock_8c.html#a81e79e5c1c230b7e2bf27b2457801d4e">remmina_unlock_new</a>(<a class="code" href="remmina__main_8c.html#a7740488de65c0e642895cc9dfba07b6e">remmina_main_get_window</a>()) == 0)</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(remminafile);</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; _(<span class="stringliteral">&quot;Could not find the file “%s”.&quot;</span>), filename);</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; gtk_widget_destroy(dialog);</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; }</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
<div class="ttc" id="remmina__public_8c_html_af9c70a727bfeb32730b98ce5cf7a3739"><div class="ttname"><a href="remmina__public_8c.html#af9c70a727bfeb32730b98ce5cf7a3739">remmina_public_create_group</a></div><div class="ttdeci">void remmina_public_create_group(GtkGrid *grid, const gchar *group, gint row, gint rows, gint cols)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00251">remmina_public.c:251</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_af60b8edfa50563ae4c7593efc3deed55"><div class="ttname"><a href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a></div><div class="ttdeci">const gchar * remmina_plugin_manager_get_canonical_setting_name(const RemminaProtocolSetting *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00456">remmina_plugin_manager.c:456</a></div></div>
<div class="ttc" id="remmina__string__list_8c_html_a11147c41297537effe55f18a63ce9f7e"><div class="ttname"><a href="remmina__string__list_8c.html#a11147c41297537effe55f18a63ce9f7e">remmina_string_list_new</a></div><div class="ttdeci">GtkDialog * remmina_string_list_new(gboolean two_columns, const gchar *fields_separator)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__list_8c_source.html#l00280">remmina_string_list.c:280</a></div></div>
@@ -95,159 +95,162 @@ $(document).ready(function(){initNavTree('remmina__file__editor_8c_source.html',
<div class="ttc" id="remmina__plugin__manager_8h_html"><div class="ttname"><a href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a8eb1b213d9d08c6ad13683ce05f4355e"><div class="ttname"><a href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a></div><div class="ttdeci">const gchar * remmina_file_get_string(RemminaFile *remminafile, const gchar *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00516">remmina_file.c:516</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a745bbef1d48a7462f8db997821742395"><div class="ttname"><a href="remmina__pref_8c.html#a745bbef1d48a7462f8db997821742395">remmina_pref_keymap_groups</a></div><div class="ttdeci">gchar ** remmina_pref_keymap_groups(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01048">remmina_pref.c:1048</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_afad358c6e3a5918416c6eb036157d8e5"><div class="ttname"><a href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5">remmina_file_editor_create_resolution</a></div><div class="ttdeci">static void remmina_file_editor_create_resolution(RemminaFileEditor *gfe, const RemminaProtocolSetting *setting, GtkWidget *grid, gint row)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00541">remmina_file_editor.c:541</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_afad358c6e3a5918416c6eb036157d8e5"><div class="ttname"><a href="remmina__file__editor_8c.html#afad358c6e3a5918416c6eb036157d8e5">remmina_file_editor_create_resolution</a></div><div class="ttdeci">static void remmina_file_editor_create_resolution(RemminaFileEditor *gfe, const RemminaProtocolSetting *setting, GtkWidget *grid, gint row)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00568">remmina_file_editor.c:568</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html"><div class="ttname"><a href="remmina__ssh_8h.html">remmina_ssh.h</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_af253834273229ac38c6fdfe613626965"><div class="ttname"><a href="remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965">remmina_file_editor_create_combo</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_combo(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *list, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00718">remmina_file_editor.c:718</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_af253834273229ac38c6fdfe613626965"><div class="ttname"><a href="remmina__file__editor_8c.html#af253834273229ac38c6fdfe613626965">remmina_file_editor_create_combo</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_combo(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *list, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00796">remmina_file_editor.c:796</a></div></div>
<div class="ttc" id="remmina__file_8h_html_abc6126af1d45847bc59afa0aa3216b04a9f6024449a620d679eab2c09ea77877e"><div class="ttname"><a href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04a9f6024449a620d679eab2c09ea77877e">SSH_AUTH_AUTO_PUBLICKEY</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8h_source.html#l00071">remmina_file.h:71</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00112">types.h:112</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00113">types.h:113</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a3fb992fced83e0f1c4e4e3c8d2206be5"><div class="ttname"><a href="remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5">remmina_file_dup</a></div><div class="ttdeci">RemminaFile * remmina_file_dup(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00865">remmina_file.c:865</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a9ec86f1e9caea5ebc867a90230d6b51a"><div class="ttname"><a href="remmina__public_8c.html#a9ec86f1e9caea5ebc867a90230d6b51a">remmina_public_create_combo_entry</a></div><div class="ttdeci">GtkWidget * remmina_public_create_combo_entry(const gchar *text, const gchar *def, gboolean descending)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00065">remmina_public.c:65</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a73b8581fd1fd77532b748d91a2951f25"><div class="ttname"><a href="remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25">remmina_file_editor_on_connect</a></div><div class="ttdeci">static void remmina_file_editor_on_connect(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01749">remmina_file_editor.c:1749</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a73b8581fd1fd77532b748d91a2951f25"><div class="ttname"><a href="remmina__file__editor_8c.html#a73b8581fd1fd77532b748d91a2951f25">remmina_file_editor_on_connect</a></div><div class="ttdeci">static void remmina_file_editor_on_connect(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01843">remmina_file_editor.c:1843</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="rcw_8c_html_af657fd4825d16d8d003a8b42fbd0c715"><div class="ttname"><a href="rcw_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a></div><div class="ttdeci">gchar * remmina_pref_file</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00078">rcw.c:78</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a7740488de65c0e642895cc9dfba07b6e"><div class="ttname"><a href="remmina__main_8c.html#a7740488de65c0e642895cc9dfba07b6e">remmina_main_get_window</a></div><div class="ttdeci">GtkWindow * remmina_main_get_window()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01736">remmina_main.c:1736</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00112">types.h:112</a></div></div>
<div class="ttc" id="remmina__string__list_8c_html_a500b85eafd23280f998d2980d1eba80e"><div class="ttname"><a href="remmina__string__list_8c.html#a500b85eafd23280f998d2980d1eba80e">remmina_string_list_set_validation_func</a></div><div class="ttdeci">void remmina_string_list_set_validation_func(RemminaStringListValidationFunc func)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__list_8c_source.html#l00247">remmina_string_list.c:247</a></div></div>
<div class="ttc" id="remmina__file__editor_8c_html_abb7466f51c11427405a54c94767a52de"><div class="ttname"><a href="remmina__file__editor_8c.html#abb7466f51c11427405a54c94767a52de">G_DEFINE_TYPE</a></div><div class="ttdeci">G_DEFINE_TYPE(RemminaFileEditor, remmina_file_editor, GTK_TYPE_DIALOG)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00058">remmina_file_editor.c:58</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="remmina__file__manager_8h_html"><div class="ttname"><a href="remmina__file__manager_8h.html">remmina_file_manager.h</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_ac47032c150cbdb7bf691059b4e3eb9d0"><div class="ttname"><a href="remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0">remmina_file_editor_create_int</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_int(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gint value, gint left, gint right, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00832">remmina_file_editor.c:832</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a8a7f3ce69255bf413ef8fa841af3d019"><div class="ttname"><a href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a></div><div class="ttdeci">static void remmina_file_editor_ssh_tunnel_enabled_check_on_toggled(GtkToggleButton *togglebutton, RemminaFileEditor *gfe, RemminaProtocolSSHSetting ssh_setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00368">remmina_file_editor.c:368</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_ac47032c150cbdb7bf691059b4e3eb9d0"><div class="ttname"><a href="remmina__file__editor_8c.html#ac47032c150cbdb7bf691059b4e3eb9d0">remmina_file_editor_create_int</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_int(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gint value, gint left, gint right, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00910">remmina_file_editor.c:910</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a8a7f3ce69255bf413ef8fa841af3d019"><div class="ttname"><a href="remmina__file__editor_8c.html#a8a7f3ce69255bf413ef8fa841af3d019">remmina_file_editor_ssh_tunnel_enabled_check_on_toggled</a></div><div class="ttdeci">static void remmina_file_editor_ssh_tunnel_enabled_check_on_toggled(GtkToggleButton *togglebutton, RemminaFileEditor *gfe, RemminaProtocolSSHSetting ssh_setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00395">remmina_file_editor.c:395</a></div></div>
<div class="ttc" id="remmina__file_8c_html_ad1e4f3a0f64cd98e301044b6c38a1f1d"><div class="ttname"><a href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a></div><div class="ttdeci">const gchar * remmina_file_get_filename(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00210">remmina_file.c:210</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a9266544ca3a532b9a02d985c18113e80"><div class="ttname"><a href="remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80">remmina_file_editor_create_double</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_double(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, gdouble value, gint left, gint right, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00874">remmina_file_editor.c:874</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_ac9b7c0ba5ece064548bcaf72d1b0425a"><div class="ttname"><a href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_select(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gpointer *list, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00696">remmina_file_editor.c:696</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a9266544ca3a532b9a02d985c18113e80"><div class="ttname"><a href="remmina__file__editor_8c.html#a9266544ca3a532b9a02d985c18113e80">remmina_file_editor_create_double</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_double(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, gdouble value, gint left, gint right, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00952">remmina_file_editor.c:952</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_ac9b7c0ba5ece064548bcaf72d1b0425a"><div class="ttname"><a href="remmina__file__editor_8c.html#ac9b7c0ba5ece064548bcaf72d1b0425a">remmina_file_editor_create_select</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_select(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gpointer *list, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00774">remmina_file_editor.c:774</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a333de350f1b07add2d0fd06320c80d16"><div class="ttname"><a href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16">remmina_file_editor_protocol_combo_on_changed</a></div><div class="ttdeci">static void remmina_file_editor_protocol_combo_on_changed(GtkComboBox *combo, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01334">remmina_file_editor.c:1334</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00470">remmina_plugin_manager.c:470</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a333de350f1b07add2d0fd06320c80d16"><div class="ttname"><a href="remmina__file__editor_8c.html#a333de350f1b07add2d0fd06320c80d16">remmina_file_editor_protocol_combo_on_changed</a></div><div class="ttdeci">static void remmina_file_editor_protocol_combo_on_changed(GtkComboBox *combo, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01417">remmina_file_editor.c:1417</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00472">remmina_plugin_manager.c:472</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_ae3c9c9853eb5bedbfeadbfac1d495b95"><div class="ttname"><a href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a></div><div class="ttdeci">void remmina_widget_pool_register(GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00056">remmina_widget_pool.c:56</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
<div class="ttc" id="remmina__widget__pool_8h_html"><div class="ttname"><a href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a6eb0bcee764064d6a7dd84c015d9ed4f"><div class="ttname"><a href="remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f">remmina_file_editor_destroy</a></div><div class="ttdeci">static void remmina_file_editor_destroy(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00287">remmina_file_editor.c:287</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a6eb0bcee764064d6a7dd84c015d9ed4f"><div class="ttname"><a href="remmina__file__editor_8c.html#a6eb0bcee764064d6a7dd84c015d9ed4f">remmina_file_editor_destroy</a></div><div class="ttdeci">static void remmina_file_editor_destroy(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00293">remmina_file_editor.c:293</a></div></div>
<div class="ttc" id="remmina__public_8c_html_af1679d83834c8409f23e00c555d677fb"><div class="ttname"><a href="remmina__public_8c.html#af1679d83834c8409f23e00c555d677fb">remmina_public_combo_get_active_text</a></div><div class="ttdeci">gchar * remmina_public_combo_get_active_text(GtkComboBox *combo)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00272">remmina_public.c:272</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a098786d3aa6991aeba43a61e29d534d0"><div class="ttname"><a href="remmina__public_8c.html#a098786d3aa6991aeba43a61e29d534d0">remmina_public_resolution_validation_func</a></div><div class="ttdeci">gboolean remmina_public_resolution_validation_func(const gchar *new_str, gchar **error)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00598">remmina_public.c:598</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html_a024d3e6d752dd29828b31c60c8c7c201"><div class="ttname"><a href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">_RemminaPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00060">plugin.h:60</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a0208d5dc8197423da67e5967aafb7a05"><div class="ttname"><a href="remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05">remmina_pref_get_recent</a></div><div class="ttdeci">gchar * remmina_pref_get_recent(const gchar *protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00974">remmina_pref.c:974</a></div></div>
<div class="ttc" id="remmina__pref__dialog_8h_html"><div class="ttname"><a href="remmina__pref__dialog_8h.html">remmina_pref_dialog.h</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_af7edb004da0ecc48277c1b656f2649ae"><div class="ttname"><a href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae">remmina_file_editor_create_server</a></div><div class="ttdeci">static void remmina_file_editor_create_server(RemminaFileEditor *gfe, const RemminaProtocolSetting *setting, GtkWidget *grid, gint row)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00425">remmina_file_editor.c:425</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_af7edb004da0ecc48277c1b656f2649ae"><div class="ttname"><a href="remmina__file__editor_8c.html#af7edb004da0ecc48277c1b656f2649ae">remmina_file_editor_create_server</a></div><div class="ttdeci">static void remmina_file_editor_create_server(RemminaFileEditor *gfe, const RemminaProtocolSetting *setting, GtkWidget *grid, gint row)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00452">remmina_file_editor.c:452</a></div></div>
<div class="ttc" id="remmina__icon_8c_html_af80ed314f91d653237249d839c7fc3b2"><div class="ttname"><a href="remmina__icon_8c.html#af80ed314f91d653237249d839c7fc3b2">remmina_icon_populate_menu</a></div><div class="ttdeci">void remmina_icon_populate_menu(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__icon_8c_source.html#l00256">remmina_icon.c:256</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_ab563344276cbcdf0fcea05b0b64c7aeb"><div class="ttname"><a href="remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_full(const gchar *server, const gchar *protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02045">remmina_file_editor.c:2045</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_ab563344276cbcdf0fcea05b0b64c7aeb"><div class="ttname"><a href="remmina__file__editor_8c.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_full(const gchar *server, const gchar *protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02139">remmina_file_editor.c:2139</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a4e31f91e2398f16844f58c1cf13582da"><div class="ttname"><a href="remmina__file_8c.html#a4e31f91e2398f16844f58c1cf13582da">remmina_file_get_double</a></div><div class="ttdeci">gdouble remmina_file_get_double(RemminaFile *remminafile, const gchar *setting, gdouble default_value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00629">remmina_file.c:629</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a9afd8d41c66f547320930eb331f3124d"><div class="ttname"><a href="remmina__file__editor_8c.html#a9afd8d41c66f547320930eb331f3124d">remmina_file_editor_init</a></div><div class="ttdeci">static void remmina_file_editor_init(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01804">remmina_file_editor.c:1804</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a9afd8d41c66f547320930eb331f3124d"><div class="ttname"><a href="remmina__file__editor_8c.html#a9afd8d41c66f547320930eb331f3124d">remmina_file_editor_init</a></div><div class="ttdeci">static void remmina_file_editor_init(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01898">remmina_file_editor.c:1898</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a59eebf1d365ef192de8e14da2c381f37"><div class="ttname"><a href="struct___remmina_pref.html#a59eebf1d365ef192de8e14da2c381f37">_RemminaPref::resolutions</a></div><div class="ttdeci">gchar * resolutions</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00145">remmina_pref.h:145</a></div></div>
<div class="ttc" id="remmina__file_8c_html_ac952f8ddb715314f11cef1ccc513fb7e"><div class="ttname"><a href="remmina__file_8c.html#ac952f8ddb715314f11cef1ccc513fb7e">remmina_file_generate_filename</a></div><div class="ttdeci">void remmina_file_generate_filename(RemminaFile *remminafile)</div><div class="ttdoc">Generate a new Remmina connection profile file name. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00114">remmina_file.c:114</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a55a12c6ed9ab21954208e0e83165f770"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">_RemminaProtocolSetting::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00122">types.h:122</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a55a12c6ed9ab21954208e0e83165f770"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">_RemminaProtocolSetting::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00123">types.h:123</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html"><div class="ttname"><a href="struct___remmina_protocol_plugin.html">_RemminaProtocolPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00065">plugin.h:65</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html_a4ac66b7ebefb9bd8167737eb1af83cde"><div class="ttname"><a href="struct___remmina_plugin.html#a4ac66b7ebefb9bd8167737eb1af83cde">_RemminaPlugin::description</a></div><div class="ttdeci">const gchar * description</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00059">plugin.h:59</a></div></div>
<div class="ttc" id="remmina__main_8h_html"><div class="ttname"><a href="remmina__main_8h.html">remmina_main.h</a></div></div>
<div class="ttc" id="remmina__public_8c_html_aaf3fdb980c24cd06965b85ebcdd79173"><div class="ttname"><a href="remmina__public_8c.html#aaf3fdb980c24cd06965b85ebcdd79173">remmina_public_split_resolution_string</a></div><div class="ttdeci">int remmina_public_split_resolution_string(const char *resolution_string, int *w, int *h)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00697">remmina_public.c:697</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ab434990a6fe70b7e8a4a8b11129527a6"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">_RemminaProtocolSetting::compact</a></div><div class="ttdeci">gboolean compact</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00120">types.h:120</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78a"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a></div><div class="ttdeci">RemminaProtocolWidgetResolutionMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00147">types.h:147</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a2808be66552b252210e1c3b76530cd11"><div class="ttname"><a href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a></div><div class="ttdeci">static void remmina_file_editor_show_validation_error_popup(RemminaFileEditor *gfe, GtkWidget *failed_widget, GError *err)</div><div class="ttdoc">Shows a tooltip-like window which tells the user what they did wrong to trigger the validation functi...</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00158">remmina_file_editor.c:158</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ab434990a6fe70b7e8a4a8b11129527a6"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">_RemminaProtocolSetting::compact</a></div><div class="ttdeci">gboolean compact</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00121">types.h:121</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78a"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a></div><div class="ttdeci">RemminaProtocolWidgetResolutionMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00148">types.h:148</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a2808be66552b252210e1c3b76530cd11"><div class="ttname"><a href="remmina__file__editor_8c.html#a2808be66552b252210e1c3b76530cd11">remmina_file_editor_show_validation_error_popup</a></div><div class="ttdeci">static void remmina_file_editor_show_validation_error_popup(RemminaFileEditor *gfe, GtkWidget *failed_widget, GError *err)</div><div class="ttdoc">Shows a tooltip-like window which tells the user what they did wrong to trigger the validation functi...</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00164">remmina_file_editor.c:164</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a616258d3226ec1f1ecee6ce18aba535b"><div class="ttname"><a href="remmina__public_8c.html#a616258d3226ec1f1ecee6ce18aba535b">remmina_public_create_combo_map</a></div><div class="ttdeci">GtkWidget * remmina_public_create_combo_map(const gpointer *key_value_list, const gchar *def, gboolean use_icon, const gchar *domain)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00211">remmina_public.c:211</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_ab5d28ebef67a21099e99268bd6fa04aa"><div class="ttname"><a href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_chooser(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gint type, gchar *setting_name)</div><div class="ttdoc">Create checkbox + gtk_file_chooser for open files and select folders. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00769">remmina_file_editor.c:769</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00150">types.h:150</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a54d3b1890fcf67c2f7615e37f27f7583"><div class="ttname"><a href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583">remmina_file_editor_create_password</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_password(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00476">remmina_file_editor.c:476</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_ab5d28ebef67a21099e99268bd6fa04aa"><div class="ttname"><a href="remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa">remmina_file_editor_create_chooser</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_chooser(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gint type, gchar *setting_name)</div><div class="ttdoc">Create checkbox + gtk_file_chooser for open files and select folders. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00847">remmina_file_editor.c:847</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00151">types.h:151</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a54d3b1890fcf67c2f7615e37f27f7583"><div class="ttname"><a href="remmina__file__editor_8c.html#a54d3b1890fcf67c2f7615e37f27f7583">remmina_file_editor_create_password</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_password(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00503">remmina_file_editor.c:503</a></div></div>
<div class="ttc" id="remmina__file_8c_html_ab03b042504c09c1ad880ac126a703114"><div class="ttname"><a href="remmina__file_8c.html#ab03b042504c09c1ad880ac126a703114">remmina_file_set_filename</a></div><div class="ttdeci">void remmina_file_set_filename(RemminaFile *remminafile, const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00182">remmina_file.c:182</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aadf4d0ab51fe09231b48d4a2939564f7"><div class="ttname"><a href="remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7">ssh_tunnel_auth_list</a></div><div class="ttdeci">static gpointer ssh_tunnel_auth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01118">remmina_file_editor.c:1118</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_ac4aed08e645f690ef347adec9cdbb9b9"><div class="ttname"><a href="remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9">remmina_file_editor_update_settings</a></div><div class="ttdeci">static GError * remmina_file_editor_update_settings(RemminaFileEditor *gfe, GtkWidget **failed_widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01531">remmina_file_editor.c:1531</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aadf4d0ab51fe09231b48d4a2939564f7"><div class="ttname"><a href="remmina__file__editor_8c.html#aadf4d0ab51fe09231b48d4a2939564f7">ssh_tunnel_auth_list</a></div><div class="ttdeci">static gpointer ssh_tunnel_auth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01201">remmina_file_editor.c:1201</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00131">types.h:131</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_ac4aed08e645f690ef347adec9cdbb9b9"><div class="ttname"><a href="remmina__file__editor_8c.html#ac4aed08e645f690ef347adec9cdbb9b9">remmina_file_editor_update_settings</a></div><div class="ttdeci">static GError * remmina_file_editor_update_settings(RemminaFileEditor *gfe, GtkWidget **failed_widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01614">remmina_file_editor.c:1614</a></div></div>
<div class="ttc" id="remmina__icon_8h_html"><div class="ttname"><a href="remmina__icon_8h.html">remmina_icon.h</a></div></div>
<div class="ttc" id="remmina__public_8h_html"><div class="ttname"><a href="remmina__public_8h.html">remmina_public.h</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ae1cc5b9d910f68aa5909e3cf483c1d1d"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">_RemminaProtocolSetting::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00121">types.h:121</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_add382dd8f40444b928e78b293a86a257"><div class="ttname"><a href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a></div><div class="ttdeci">void remmina_file_editor_check_profile(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01869">remmina_file_editor.c:1869</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ae1cc5b9d910f68aa5909e3cf483c1d1d"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">_RemminaProtocolSetting::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00122">types.h:122</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_add382dd8f40444b928e78b293a86a257"><div class="ttname"><a href="remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a></div><div class="ttdeci">void remmina_file_editor_check_profile(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01963">remmina_file_editor.c:1963</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a3796b536244067e9a85923b1cefa6cde"><div class="ttname"><a href="remmina__public_8c.html#a3796b536244067e9a85923b1cefa6cde">remmina_public_create_combo_text_d</a></div><div class="ttdeci">GtkWidget * remmina_public_create_combo_text_d(const gchar *text, const gchar *def, const gchar *empty_choice)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00117">remmina_public.c:117</a></div></div>
<div class="ttc" id="remmina__file__editor_8h_html_abbeeb0b88810f1f479ffb1fadfbf6530"><div class="ttname"><a href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a></div><div class="ttdeci">struct _RemminaFileEditorPriv RemminaFileEditorPriv</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00054">remmina_file_editor.h:54</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aecbc005c39cdf4fab4779090f11a3556"><div class="ttname"><a href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_notebook_tab(RemminaFileEditor *gfe, const gchar *stock_id, const gchar *label, gint rows, gint cols)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00323">remmina_file_editor.c:323</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aecbc005c39cdf4fab4779090f11a3556"><div class="ttname"><a href="remmina__file__editor_8c.html#aecbc005c39cdf4fab4779090f11a3556">remmina_file_editor_create_notebook_tab</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_notebook_tab(RemminaFileEditor *gfe, const gchar *stock_id, const gchar *label, gint rows, gint cols)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00329">remmina_file_editor.c:329</a></div></div>
<div class="ttc" id="remmina__public_8c_html_ab4a593956dfe89aba3242a5c264a681f"><div class="ttname"><a href="remmina__public_8c.html#ab4a593956dfe89aba3242a5c264a681f">remmina_public_create_combo</a></div><div class="ttdeci">GtkWidget * remmina_public_create_combo(gboolean use_icon)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00181">remmina_public.c:181</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00151">types.h:151</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a></div><div class="ttdeci">RemminaProtocolSSHSetting</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00127">types.h:127</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00152">types.h:152</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a></div><div class="ttdeci">RemminaProtocolSSHSetting</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
<div class="ttc" id="remmina__file_8c_html_af153b0d289ac93f6ecdaa15d5f3b9b8c"><div class="ttname"><a href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a></div><div class="ttdeci">void remmina_file_set_int(RemminaFile *remminafile, const gchar *setting, gint value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00585">remmina_file.c:585</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a55f66f2bb81bf427d6837e1adb7fe1d4"><div class="ttname"><a href="remmina__file_8c.html#a55f66f2bb81bf427d6837e1adb7fe1d4">remmina_file_delete</a></div><div class="ttdeci">void remmina_file_delete(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00911">remmina_file.c:911</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a287b79ac0e199393f391655ab5cbb55b"><div class="ttname"><a href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b">remmina_file_editor_entry_on_changed</a></div><div class="ttdeci">static void remmina_file_editor_entry_on_changed(GtkEditable *editable, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01879">remmina_file_editor.c:1879</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a8cec1e80676c945f10bf39aca671d0a0"><div class="ttname"><a href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_text2(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gint left, gint right, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00620">remmina_file_editor.c:620</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a287b79ac0e199393f391655ab5cbb55b"><div class="ttname"><a href="remmina__file__editor_8c.html#a287b79ac0e199393f391655ab5cbb55b">remmina_file_editor_entry_on_changed</a></div><div class="ttdeci">static void remmina_file_editor_entry_on_changed(GtkEditable *editable, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01973">remmina_file_editor.c:1973</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a8cec1e80676c945f10bf39aca671d0a0"><div class="ttname"><a href="remmina__file__editor_8c.html#a8cec1e80676c945f10bf39aca671d0a0">remmina_file_editor_create_text2</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_text2(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gint left, gint right, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00698">remmina_file_editor.c:698</a></div></div>
<div class="ttc" id="remmina__file_8h_html_abc6126af1d45847bc59afa0aa3216b04aeba5f4ff7657d7b15519556793ee8930"><div class="ttname"><a href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04aeba5f4ff7657d7b15519556793ee8930">SSH_AUTH_PUBLICKEY</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8h_source.html#l00069">remmina_file.h:69</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_aae09a7e2c978cc36e85d0f295518978d"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#aae09a7e2c978cc36e85d0f295518978d">_RemminaProtocolPlugin::basic_settings</a></div><div class="ttdeci">const RemminaProtocolSetting * basic_settings</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00074">plugin.h:74</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a2a31c93bd54489f8bb3c8fe0dff033d6"><div class="ttname"><a href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_check(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint top, const gchar *label, gboolean value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00741">remmina_file_editor.c:741</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a6415f73260076747c4f933af7f9f4b38"><div class="ttname"><a href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38">remmina_file_editor_create_all_settings</a></div><div class="ttdeci">static void remmina_file_editor_create_all_settings(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01297">remmina_file_editor.c:1297</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a3df3718727200d865f9f977435db30ea"><div class="ttname"><a href="remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea">remmina_file_editor_create_notebook_container</a></div><div class="ttdeci">static void remmina_file_editor_create_notebook_container(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00301">remmina_file_editor.c:301</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a2a31c93bd54489f8bb3c8fe0dff033d6"><div class="ttname"><a href="remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6">remmina_file_editor_create_check</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_check(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint top, const gchar *label, gboolean value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00819">remmina_file_editor.c:819</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a6415f73260076747c4f933af7f9f4b38"><div class="ttname"><a href="remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38">remmina_file_editor_create_all_settings</a></div><div class="ttdeci">static void remmina_file_editor_create_all_settings(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01380">remmina_file_editor.c:1380</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a3df3718727200d865f9f977435db30ea"><div class="ttname"><a href="remmina__file__editor_8c.html#a3df3718727200d865f9f977435db30ea">remmina_file_editor_create_notebook_container</a></div><div class="ttdeci">static void remmina_file_editor_create_notebook_container(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00307">remmina_file_editor.c:307</a></div></div>
<div class="ttc" id="remmina__file__editor_8h_html"><div class="ttname"><a href="remmina__file__editor_8h.html">remmina_file_editor.h</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a08327d6951c345808628dbb5784aba06"><div class="ttname"><a href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_file(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01910">remmina_file_editor.c:1910</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6086b43049072a3a3245c4a45f43dbc5"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">_RemminaProtocolSetting::validator_data</a></div><div class="ttdeci">gpointer validator_data</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00123">types.h:123</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00132">types.h:132</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa1e0d966a2100175a8eab3a1497306c0"><div class="ttname"><a href="remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0">remmina_file_editor_int_setting_filter</a></div><div class="ttdeci">void remmina_file_editor_int_setting_filter(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00807">remmina_file_editor.c:807</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00113">types.h:113</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a08327d6951c345808628dbb5784aba06"><div class="ttname"><a href="remmina__file__editor_8c.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_file(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02004">remmina_file_editor.c:2004</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6086b43049072a3a3245c4a45f43dbc5"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">_RemminaProtocolSetting::validator_data</a></div><div class="ttdeci">gpointer validator_data</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00124">types.h:124</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00133">types.h:133</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa1e0d966a2100175a8eab3a1497306c0"><div class="ttname"><a href="remmina__file__editor_8c.html#aa1e0d966a2100175a8eab3a1497306c0">remmina_file_editor_int_setting_filter</a></div><div class="ttdeci">void remmina_file_editor_int_setting_filter(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00885">remmina_file_editor.c:885</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00114">types.h:114</a></div></div>
<div class="ttc" id="remmina__string__list_8c_html_ab1bacc097f59c20b477d954bb863a5e0"><div class="ttname"><a href="remmina__string__list_8c.html#ab1bacc097f59c20b477d954bb863a5e0">remmina_string_list_set_text</a></div><div class="ttdeci">void remmina_string_list_set_text(const gchar *text, const gboolean clear_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__list_8c_source.html#l00171">remmina_string_list.c:171</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa9345cfe3fb32d326b652e96ee55eaea"><div class="ttname"><a href="remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02078">remmina_file_editor.c:2078</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00149">types.h:149</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_ab6e562792eb63ec43ed7f9a4b6687c23"><div class="ttname"><a href="remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23">remmina_file_editor_create_ssh_tunnel_tab</a></div><div class="ttdeci">static void remmina_file_editor_create_ssh_tunnel_tab(RemminaFileEditor *gfe, RemminaProtocolSSHSetting ssh_setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01129">remmina_file_editor.c:1129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa9345cfe3fb32d326b652e96ee55eaea"><div class="ttname"><a href="remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02172">remmina_file_editor.c:2172</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00150">types.h:150</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_ab6e562792eb63ec43ed7f9a4b6687c23"><div class="ttname"><a href="remmina__file__editor_8c.html#ab6e562792eb63ec43ed7f9a4b6687c23">remmina_file_editor_create_ssh_tunnel_tab</a></div><div class="ttdeci">static void remmina_file_editor_create_ssh_tunnel_tab(RemminaFileEditor *gfe, RemminaProtocolSSHSetting ssh_setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01212">remmina_file_editor.c:1212</a></div></div>
<div class="ttc" id="struct___remmina_file_editor_class_html"><div class="ttname"><a href="struct___remmina_file_editor_class.html">_RemminaFileEditorClass</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00062">remmina_file_editor.h:62</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="remmina__string__list_8h_html"><div class="ttname"><a href="remmina__string__list_8h.html">remmina_string_list.h</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00102">types.h:102</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a5e421ba636d34e21bba5ece463e98892"><div class="ttname"><a href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a></div><div class="ttdeci">RemminaFile * remmina_file_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00093">remmina_file.c:93</a></div></div>
<div class="ttc" id="remmina__string__list_8c_html_aa9ca6ccf40b954051a0daa5c1efeef87"><div class="ttname"><a href="remmina__string__list_8c.html#aa9ca6ccf40b954051a0daa5c1efeef87">remmina_string_list_set_titles</a></div><div class="ttdeci">void remmina_string_list_set_titles(gchar *title1, gchar *title2)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__list_8c_source.html#l00254">remmina_string_list.c:254</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a94df87db138d4e44e81b3e6c99148ed3"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">_RemminaProtocolSetting::validator</a></div><div class="ttdeci">GCallback validator</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00124">types.h:124</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a727f967cf81d4af3f953046b0c4cf08d"><div class="ttname"><a href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a></div><div class="ttdeci">static void remmina_file_editor_create_settings(RemminaFileEditor *gfe, GtkWidget *grid, const RemminaProtocolSetting *settings)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00919">remmina_file_editor.c:919</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a57224f3f69f04f398de563b71be6b18e"><div class="ttname"><a href="remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e">remmina_file_editor_on_save_connect</a></div><div class="ttdeci">static void remmina_file_editor_on_save_connect(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01771">remmina_file_editor.c:1771</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a94df87db138d4e44e81b3e6c99148ed3"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">_RemminaProtocolSetting::validator</a></div><div class="ttdeci">GCallback validator</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00125">types.h:125</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a727f967cf81d4af3f953046b0c4cf08d"><div class="ttname"><a href="remmina__file__editor_8c.html#a727f967cf81d4af3f953046b0c4cf08d">remmina_file_editor_create_settings</a></div><div class="ttdeci">static void remmina_file_editor_create_settings(RemminaFileEditor *gfe, GtkWidget *grid, const RemminaProtocolSetting *settings)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00997">remmina_file_editor.c:997</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a57224f3f69f04f398de563b71be6b18e"><div class="ttname"><a href="remmina__file__editor_8c.html#a57224f3f69f04f398de563b71be6b18e">remmina_file_editor_on_save_connect</a></div><div class="ttdeci">static void remmina_file_editor_on_save_connect(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01865">remmina_file_editor.c:1865</a></div></div>
<div class="ttc" id="rcw_8h_html"><div class="ttname"><a href="rcw_8h.html">rcw.h</a></div></div>
<div class="ttc" id="rcw_8c_html_a1b7a771392e15e527005305e71cc2546"><div class="ttname"><a href="rcw_8c.html#a1b7a771392e15e527005305e71cc2546">rcw_open_from_file</a></div><div class="ttdeci">void rcw_open_from_file(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04446">rcw.c:4446</a></div></div>
<div class="ttc" id="rcw_8c_html_a29701ae152ba15f6d8921f395174d2df"><div class="ttname"><a href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a></div><div class="ttdeci">RemminaPref remmina_pref</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00079">rcw.c:79</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a3866832d550ceac91d608900df4c8056"><div class="ttname"><a href="remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a></div><div class="ttdeci">void remmina_file_editor_file_save(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01896">remmina_file_editor.c:1896</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a3866832d550ceac91d608900df4c8056"><div class="ttname"><a href="remmina__file__editor_8c.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a></div><div class="ttdeci">void remmina_file_editor_file_save(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01990">remmina_file_editor.c:1990</a></div></div>
<div class="ttc" id="struct___remmina_file_editor_html"><div class="ttname"><a href="struct___remmina_file_editor.html">_RemminaFileEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00056">remmina_file_editor.h:56</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a4884356c195dcfb4ceacf641a1e74e66"><div class="ttname"><a href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a></div><div class="ttdeci">gint remmina_file_get_int(RemminaFile *remminafile, const gchar *setting, gint default_value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00603">remmina_file.c:603</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa4e8657ca722e4cce3f3c42c0cfec51e"><div class="ttname"><a href="remmina__file__editor_8c.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02039">remmina_file_editor.c:2039</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a880e8e6aee571b91eeb7f5d2f60e210b"><div class="ttname"><a href="remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b">remmina_file_editor_on_realize</a></div><div class="ttdeci">static void remmina_file_editor_on_realize(GtkWidget *widget, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00270">remmina_file_editor.c:270</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a112a0fd5bf7d5693b9cb717c850637cb"><div class="ttname"><a href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a></div><div class="ttdeci">static void remmina_file_editor_button_on_toggled(GtkToggleButton *togglebutton, GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00295">remmina_file_editor.c:295</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aaa55ab55c6806aef6765eb01577365f3"><div class="ttname"><a href="remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3">remmina_file_editor_on_cancel</a></div><div class="ttdeci">static void remmina_file_editor_on_cancel(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01798">remmina_file_editor.c:1798</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa4e8657ca722e4cce3f3c42c0cfec51e"><div class="ttname"><a href="remmina__file__editor_8c.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02133">remmina_file_editor.c:2133</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a880e8e6aee571b91eeb7f5d2f60e210b"><div class="ttname"><a href="remmina__file__editor_8c.html#a880e8e6aee571b91eeb7f5d2f60e210b">remmina_file_editor_on_realize</a></div><div class="ttdeci">static void remmina_file_editor_on_realize(GtkWidget *widget, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00276">remmina_file_editor.c:276</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a112a0fd5bf7d5693b9cb717c850637cb"><div class="ttname"><a href="remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb">remmina_file_editor_button_on_toggled</a></div><div class="ttdeci">static void remmina_file_editor_button_on_toggled(GtkToggleButton *togglebutton, GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00301">remmina_file_editor.c:301</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aaa55ab55c6806aef6765eb01577365f3"><div class="ttname"><a href="remmina__file__editor_8c.html#aaa55ab55c6806aef6765eb01577365f3">remmina_file_editor_on_cancel</a></div><div class="ttdeci">static void remmina_file_editor_on_cancel(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01892">remmina_file_editor.c:1892</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a3872c8656a8a3d5147bcc603471c1932"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a></div><div class="ttdeci">RemminaPlugin * remmina_plugin_manager_get_plugin(RemminaPluginType type, const gchar *name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00441">remmina_plugin_manager.c:441</a></div></div>
<div class="ttc" id="remmina__pref_8h_html"><div class="ttname"><a href="remmina__pref_8h.html">remmina_pref.h</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_ac2a5cf9cdcf640986e245eb04be9c4ad"><div class="ttname"><a href="remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad">remmina_file_editor_on_save</a></div><div class="ttdeci">static void remmina_file_editor_on_save(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01729">remmina_file_editor.c:1729</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_afcc5ee6fcd22686b716fbe595cb210a6"><div class="ttname"><a href="remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6">remmina_file_editor_on_default</a></div><div class="ttdeci">static void remmina_file_editor_on_default(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01691">remmina_file_editor.c:1691</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00104">types.h:104</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_ac2a5cf9cdcf640986e245eb04be9c4ad"><div class="ttname"><a href="remmina__file__editor_8c.html#ac2a5cf9cdcf640986e245eb04be9c4ad">remmina_file_editor_on_save</a></div><div class="ttdeci">static void remmina_file_editor_on_save(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01823">remmina_file_editor.c:1823</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_afcc5ee6fcd22686b716fbe595cb210a6"><div class="ttname"><a href="remmina__file__editor_8c.html#afcc5ee6fcd22686b716fbe595cb210a6">remmina_file_editor_on_default</a></div><div class="ttdeci">static void remmina_file_editor_on_default(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01785">remmina_file_editor.c:1785</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a3da83a35788891fa1fede4b063e1d0e6"><div class="ttname"><a href="remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6">remmina_file_editor_assistance_enabled_check_on_toggled</a></div><div class="ttdeci">static void remmina_file_editor_assistance_enabled_check_on_toggled(GtkToggleButton *togglebutton, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00375">remmina_file_editor.c:375</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_a6e04143450eeb71e3d0b2c14983860a4"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">_RemminaProtocolPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00067">plugin.h:67</a></div></div>
<div class="ttc" id="remmina__main_8c_html_aac3fe305e456dfa7bb55aa2f057e8cb0"><div class="ttname"><a href="remmina__main_8c.html#aac3fe305e456dfa7bb55aa2f057e8cb0">remmina_main_toggle_password_view</a></div><div class="ttdeci">void remmina_main_toggle_password_view(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01161">remmina_main.c:1161</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aed69ba3823f68580d5acea459c5c890f"><div class="ttname"><a href="remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f">remmina_file_editor_double_setting_filter</a></div><div class="ttdeci">void remmina_file_editor_double_setting_filter(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00821">remmina_file_editor.c:821</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aed69ba3823f68580d5acea459c5c890f"><div class="ttname"><a href="remmina__file__editor_8c.html#aed69ba3823f68580d5acea459c5c890f">remmina_file_editor_double_setting_filter</a></div><div class="ttdeci">void remmina_file_editor_double_setting_filter(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00899">remmina_file_editor.c:899</a></div></div>
<div class="ttc" id="remmina__file_8h_html_abc6126af1d45847bc59afa0aa3216b04a7d995a7868d2d2f81e9dd2f898b206fe"><div class="ttname"><a href="remmina__file_8h.html#abc6126af1d45847bc59afa0aa3216b04a7d995a7868d2d2f81e9dd2f898b206fe">SSH_AUTH_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8h_source.html#l00068">remmina_file.h:68</a></div></div>
<div class="ttc" id="remmina__file__manager_8c_html_a536edeef371d907ab3936f4d65c3003d"><div class="ttname"><a href="remmina__file__manager_8c.html#a536edeef371d907ab3936f4d65c3003d">remmina_file_manager_get_groups</a></div><div class="ttdeci">gchar * remmina_file_manager_get_groups(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00210">remmina_file_manager.c:210</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a072de27e64368581e8507d3b795bfbf4"><div class="ttname"><a href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_text(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00654">remmina_file_editor.c:654</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a072de27e64368581e8507d3b795bfbf4"><div class="ttname"><a href="remmina__file__editor_8c.html#a072de27e64368581e8507d3b795bfbf4">remmina_file_editor_create_text</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_text(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00732">remmina_file_editor.c:732</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a85ca1ca2d0bf9ef29e490c6f4527a954"><div class="ttname"><a href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a></div><div class="ttdeci">void remmina_file_set_string(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00469">remmina_file.c:469</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a4c16a6793828893598bc0a158bb13cbb"><div class="ttname"><a href="remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb">remmina_file_editor_save_behavior_tab</a></div><div class="ttdeci">static void remmina_file_editor_save_behavior_tab(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01378">remmina_file_editor.c:1378</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a9bcaeec3ba26d31c6333f35fe1381a8c"><div class="ttname"><a href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c">remmina_file_editor_create_behavior_tab</a></div><div class="ttdeci">static void remmina_file_editor_create_behavior_tab(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01074">remmina_file_editor.c:1074</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a4c16a6793828893598bc0a158bb13cbb"><div class="ttname"><a href="remmina__file__editor_8c.html#a4c16a6793828893598bc0a158bb13cbb">remmina_file_editor_save_behavior_tab</a></div><div class="ttdeci">static void remmina_file_editor_save_behavior_tab(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01461">remmina_file_editor.c:1461</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a9bcaeec3ba26d31c6333f35fe1381a8c"><div class="ttname"><a href="remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c">remmina_file_editor_create_behavior_tab</a></div><div class="ttdeci">static void remmina_file_editor_create_behavior_tab(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01157">remmina_file_editor.c:1157</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a8c893a5deec9bc446bd89cc9973416c7"><div class="ttname"><a href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a></div><div class="ttdeci">void remmina_file_save(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00730">remmina_file.c:730</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a51b9fe336d9068ffc488ef55adc9eac4"><div class="ttname"><a href="remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4">remmina_file_editor_browse_resolution</a></div><div class="ttdeci">static void remmina_file_editor_browse_resolution(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00525">remmina_file_editor.c:525</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a8c1924fd32be943136d147e8dedb3eca"><div class="ttname"><a href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a></div><div class="ttdeci">static gboolean remmina_file_editor_validate_settings(RemminaFileEditor *gfe, gchar *setting_name_to_validate, gconstpointer value, GError **err)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01453">remmina_file_editor.c:1453</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a5ea3f796c3a46aeb01b2f13f4a3d40a9"><div class="ttname"><a href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a></div><div class="ttdeci">static void remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled(GtkToggleButton *togglebutton, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00359">remmina_file_editor.c:359</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a51b9fe336d9068ffc488ef55adc9eac4"><div class="ttname"><a href="remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4">remmina_file_editor_browse_resolution</a></div><div class="ttdeci">static void remmina_file_editor_browse_resolution(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00552">remmina_file_editor.c:552</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a8c1924fd32be943136d147e8dedb3eca"><div class="ttname"><a href="remmina__file__editor_8c.html#a8c1924fd32be943136d147e8dedb3eca">remmina_file_editor_validate_settings</a></div><div class="ttdeci">static gboolean remmina_file_editor_validate_settings(RemminaFileEditor *gfe, gchar *setting_name_to_validate, gconstpointer value, GError **err)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01536">remmina_file_editor.c:1536</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a5ea3f796c3a46aeb01b2f13f4a3d40a9"><div class="ttname"><a href="remmina__file__editor_8c.html#a5ea3f796c3a46aeb01b2f13f4a3d40a9">remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled</a></div><div class="ttdeci">static void remmina_file_editor_ssh_tunnel_server_custom_radio_on_toggled(GtkToggleButton *togglebutton, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00365">remmina_file_editor.c:365</a></div></div>
<div class="ttc" id="remmina__file_8c_html_ac1685edf35a793a396ce039d7eec5343"><div class="ttname"><a href="remmina__file_8c.html#ac1685edf35a793a396ce039d7eec5343">remmina_file_copy</a></div><div class="ttdeci">RemminaFile * remmina_file_copy(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00217">remmina_file.c:217</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00131">types.h:131</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00132">types.h:132</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a71dd793e231434cba784ae36be456586"><div class="ttname"><a href="remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586">remmina_file_editor_create_assistance</a></div><div class="ttdeci">static void remmina_file_editor_create_assistance(RemminaFileEditor *gfe, const RemminaProtocolSetting *setting, GtkWidget *grid, gint row)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00648">remmina_file_editor.c:648</a></div></div>
<div class="ttc" id="remmina__file__manager_8c_html_af7b58659604660eb0cb40b0e0f8348ab"><div class="ttname"><a href="remmina__file__manager_8c.html#af7b58659604660eb0cb40b0e0f8348ab">remmina_file_manager_load_file</a></div><div class="ttdeci">RemminaFile * remmina_file_manager_load_file(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00356">remmina_file_manager.c:356</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_afc37e2e9dbe8f0c8bcf1a76d0c54ea1b"><div class="ttname"><a href="remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b">remmina_file_editor_iterate_protocol</a></div><div class="ttdeci">static gboolean remmina_file_editor_iterate_protocol(gchar *protocol, RemminaPlugin *plugin, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01847">remmina_file_editor.c:1847</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_adddb10632532560ce0a1f0c9ca1bcde5"><div class="ttname"><a href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a></div><div class="ttdeci">static GError * remmina_file_editor_update(RemminaFileEditor *gfe, GtkWidget **failed_widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01636">remmina_file_editor.c:1636</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_afc37e2e9dbe8f0c8bcf1a76d0c54ea1b"><div class="ttname"><a href="remmina__file__editor_8c.html#afc37e2e9dbe8f0c8bcf1a76d0c54ea1b">remmina_file_editor_iterate_protocol</a></div><div class="ttdeci">static gboolean remmina_file_editor_iterate_protocol(gchar *protocol, RemminaPlugin *plugin, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01941">remmina_file_editor.c:1941</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_adddb10632532560ce0a1f0c9ca1bcde5"><div class="ttname"><a href="remmina__file__editor_8c.html#adddb10632532560ce0a1f0c9ca1bcde5">remmina_file_editor_update</a></div><div class="ttdeci">static GError * remmina_file_editor_update(RemminaFileEditor *gfe, GtkWidget **failed_widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01719">remmina_file_editor.c:1719</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa5c50852f8569f075eec5d5db30c2ebf"><div class="ttname"><a href="remmina__file__editor_8c.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_copy(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02059">remmina_file_editor.c:2059</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa5c50852f8569f075eec5d5db30c2ebf"><div class="ttname"><a href="remmina__file__editor_8c.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_copy(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02153">remmina_file_editor.c:2153</a></div></div>
<div class="ttc" id="struct___remmina_file_editor_html_a8517b06116569fad2bb71b99c2f75f6a"><div class="ttname"><a href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">_RemminaFileEditor::priv</a></div><div class="ttdeci">RemminaFileEditorPriv * priv</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00059">remmina_file_editor.h:59</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aef2803d3fc2558c9c3844ffac088e7d7"><div class="ttname"><a href="remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7">remmina_file_editor_create_textarea</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_textarea(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00663">remmina_file_editor.c:663</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa3acf0470349d706d15fa751e982fd05"><div class="ttname"><a href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05">remmina_file_editor_browse_avahi</a></div><div class="ttdeci">static void remmina_file_editor_browse_avahi(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00236">remmina_file_editor.c:236</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00148">types.h:148</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aef2803d3fc2558c9c3844ffac088e7d7"><div class="ttname"><a href="remmina__file__editor_8c.html#aef2803d3fc2558c9c3844ffac088e7d7">remmina_file_editor_create_textarea</a></div><div class="ttdeci">static GtkWidget * remmina_file_editor_create_textarea(RemminaFileEditor *gfe, GtkWidget *grid, gint row, gint col, const gchar *label, const gchar *value, gchar *setting_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00741">remmina_file_editor.c:741</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa3acf0470349d706d15fa751e982fd05"><div class="ttname"><a href="remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05">remmina_file_editor_browse_avahi</a></div><div class="ttdeci">static void remmina_file_editor_browse_avahi(GtkWidget *button, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00242">remmina_file_editor.c:242</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00149">types.h:149</a></div></div>
<div class="ttc" id="remmina__unlock_8c_html_a81e79e5c1c230b7e2bf27b2457801d4e"><div class="ttname"><a href="remmina__unlock_8c.html#a81e79e5c1c230b7e2bf27b2457801d4e">remmina_unlock_new</a></div><div class="ttdeci">gint remmina_unlock_new(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__unlock_8c_source.html#l00113">remmina_unlock.c:113</a></div></div>
<div class="ttc" id="remmina__unlock_8h_html"><div class="ttname"><a href="remmina__unlock_8h.html">remmina_unlock.h</a></div></div>
<div class="ttc" id="remmina__public_8c_html_aa5eacff7c9dab7457dd65525d01047f8"><div class="ttname"><a href="remmina__public_8c.html#aa5eacff7c9dab7457dd65525d01047f8">remmina_public_load_combo_text_d</a></div><div class="ttdeci">void remmina_public_load_combo_text_d(GtkWidget *combo, const gchar *text, const gchar *def, const gchar *empty_choice)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00136">remmina_public.c:136</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a51a45d872a9e7a0b06d25aef592a6e3a"><div class="ttname"><a href="remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a">remmina_file_editor_update_resolution</a></div><div class="ttdeci">static void remmina_file_editor_update_resolution(GtkWidget *widget, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00513">remmina_file_editor.c:513</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a51a45d872a9e7a0b06d25aef592a6e3a"><div class="ttname"><a href="remmina__file__editor_8c.html#a51a45d872a9e7a0b06d25aef592a6e3a">remmina_file_editor_update_resolution</a></div><div class="ttdeci">static void remmina_file_editor_update_resolution(GtkWidget *widget, RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00540">remmina_file_editor.c:540</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a7f1406c817183d78a801668a10d73e0b"><div class="ttname"><a href="remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b">remmina_file_editor_class_init</a></div><div class="ttdeci">static void remmina_file_editor_class_init(RemminaFileEditorClass *klass)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00138">remmina_file_editor.c:138</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a7a5b063deb126422c461203c074a3dc4"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">_RemminaProtocolSetting::label</a></div><div class="ttdeci">const gchar * label</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_a99984deb4b5a3b873b26c0c9cf8268b7"><div class="ttname"><a href="remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7">remmina_file_editor_save_ssh_tunnel_tab</a></div><div class="ttdeci">static void remmina_file_editor_save_ssh_tunnel_tab(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01392">remmina_file_editor.c:1392</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a7f1406c817183d78a801668a10d73e0b"><div class="ttname"><a href="remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b">remmina_file_editor_class_init</a></div><div class="ttdeci">static void remmina_file_editor_class_init(RemminaFileEditorClass *klass)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l00144">remmina_file_editor.c:144</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a7a5b063deb126422c461203c074a3dc4"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">_RemminaProtocolSetting::label</a></div><div class="ttdeci">const gchar * label</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00120">types.h:120</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_a99984deb4b5a3b873b26c0c9cf8268b7"><div class="ttname"><a href="remmina__file__editor_8c.html#a99984deb4b5a3b873b26c0c9cf8268b7">remmina_file_editor_save_ssh_tunnel_tab</a></div><div class="ttdeci">static void remmina_file_editor_save_ssh_tunnel_tab(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01475">remmina_file_editor.c:1475</a></div></div>
<div class="ttc" id="remmina__file_8h_html"><div class="ttname"><a href="remmina__file_8h.html">remmina_file.h</a></div></div>
<div class="ttc" id="remmina__string__list_8c_html_a74058eac0af28c05a55d041103457aec"><div class="ttname"><a href="remmina__string__list_8c.html#a74058eac0af28c05a55d041103457aec">remmina_string_list_get_text</a></div><div class="ttdeci">gchar * remmina_string_list_get_text(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__list_8c_source.html#l00205">remmina_string_list.c:205</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/public/remmina__file__editor_8h.html b/public/remmina__file__editor_8h.html
index cb4b5a40d..dec212dca 100644
--- a/public/remmina__file__editor_8h.html
+++ b/public/remmina__file__editor_8h.html
@@ -190,7 +190,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01869">1869</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01963">1963</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -210,7 +210,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01896">1896</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01990">1990</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -248,7 +248,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02039">2039</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02133">2133</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -268,7 +268,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02059">2059</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02153">2153</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -288,7 +288,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l01910">1910</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02004">2004</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -308,7 +308,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02078">2078</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02172">2172</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
@@ -338,7 +338,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02045">2045</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__file__editor_8c_source.html#l02139">2139</a> of file <a class="el" href="remmina__file__editor_8c_source.html">remmina_file_editor.c</a>.</p>
</div>
</div>
diff --git a/public/remmina__file__editor_8h_source.html b/public/remmina__file__editor_8h_source.html
index 7fa493eb9..eea117042 100644
--- a/public/remmina__file__editor_8h_source.html
+++ b/public/remmina__file__editor_8h_source.html
@@ -89,19 +89,19 @@ $(document).ready(function(){initNavTree('remmina__file__editor_8h_source.html',
<a href="remmina__file__editor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2009-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file_8h.html">remmina_file.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#define REMMINA_TYPE_FILE_EDITOR (remmina_file_editor_get_type())</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define REMMINA_FILE_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), REMMINA_TYPE_FILE_EDITOR, RemminaFileEditor))</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define REMMINA_FILE_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), REMMINA_TYPE_FILE_EDITOR, RemminaFileEditorClass))</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#define REMMINA_IS_FILE_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), REMMINA_TYPE_FILE_EDITOR))</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#define REMMINA_IS_FILE_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), REMMINA_TYPE_FILE_EDITOR))</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#define REMMINA_FILE_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), REMMINA_TYPE_FILE_EDITOR, RemminaFileEditorClass))</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530"> 54</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>_RemminaFileEditorPriv <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct___remmina_file_editor.html"> 56</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_file_editor.html">_RemminaFileEditor</a> {</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct___remmina_file_editor.html#ad33dd514275a054042ab1ac258092872"> 57</a></span>&#160; GtkDialog <a class="code" href="struct___remmina_file_editor.html#ad33dd514275a054042ab1ac258092872">dialog</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a"> 59</a></span>&#160; <a class="code" href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a> * <a class="code" href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">priv</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <a class="code" href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct___remmina_file_editor_class.html"> 62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_file_editor_class.html">_RemminaFileEditorClass</a> {</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct___remmina_file_editor_class.html#a3c652db10d3aab6c698273c846fc743f"> 63</a></span>&#160; GtkDialogClass <a class="code" href="struct___remmina_file_editor_class.html#a3c652db10d3aab6c698273c846fc743f">parent_class</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <a class="code" href="remmina__file__editor_8h.html#ad2662b100a2d321db52fc1280c899208">RemminaFileEditorClass</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;GType <a class="code" href="remmina__file__editor_8h.html#ac5b20a46b2d95b1e5e4e09006e0ee04f">remmina_file_editor_get_type</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;G_GNUC_CONST;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">/* Base constructor */</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8h.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">/* Create new file */</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8h.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8h.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a>(<span class="keyword">const</span> gchar *server, <span class="keyword">const</span> gchar *protocol);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8h.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a>(<span class="keyword">const</span> gchar *filename);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">/* Open existing file */</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;GtkWidget *<a class="code" href="remmina__file__editor_8h.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a>(<span class="keyword">const</span> gchar *filename);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8h.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__file__editor_8h.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a>(<a class="code" href="struct___remmina_file_editor.html">RemminaFileEditor</a> *gfe);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;G_END_DECLS</div><div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
<div class="ttc" id="remmina__file__editor_8h_html_a16a58b48a99ec5a073a5fc6f5b0d9498"><div class="ttname"><a href="remmina__file__editor_8h.html#a16a58b48a99ec5a073a5fc6f5b0d9498">RemminaFileEditor</a></div><div class="ttdeci">struct _RemminaFileEditor RemminaFileEditor</div></div>
<div class="ttc" id="struct___remmina_file_editor_html_ad33dd514275a054042ab1ac258092872"><div class="ttname"><a href="struct___remmina_file_editor.html#ad33dd514275a054042ab1ac258092872">_RemminaFileEditor::dialog</a></div><div class="ttdeci">GtkDialog dialog</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00057">remmina_file_editor.h:57</a></div></div>
-<div class="ttc" id="remmina__file__editor_8h_html_add382dd8f40444b928e78b293a86a257"><div class="ttname"><a href="remmina__file__editor_8h.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a></div><div class="ttdeci">void remmina_file_editor_check_profile(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01869">remmina_file_editor.c:1869</a></div></div>
+<div class="ttc" id="remmina__file__editor_8h_html_add382dd8f40444b928e78b293a86a257"><div class="ttname"><a href="remmina__file__editor_8h.html#add382dd8f40444b928e78b293a86a257">remmina_file_editor_check_profile</a></div><div class="ttdeci">void remmina_file_editor_check_profile(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01963">remmina_file_editor.c:1963</a></div></div>
<div class="ttc" id="struct___remmina_file_editor_class_html_a3c652db10d3aab6c698273c846fc743f"><div class="ttname"><a href="struct___remmina_file_editor_class.html#a3c652db10d3aab6c698273c846fc743f">_RemminaFileEditorClass::parent_class</a></div><div class="ttdeci">GtkDialogClass parent_class</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00063">remmina_file_editor.h:63</a></div></div>
<div class="ttc" id="remmina__file__editor_8h_html_abbeeb0b88810f1f479ffb1fadfbf6530"><div class="ttname"><a href="remmina__file__editor_8h.html#abbeeb0b88810f1f479ffb1fadfbf6530">RemminaFileEditorPriv</a></div><div class="ttdeci">struct _RemminaFileEditorPriv RemminaFileEditorPriv</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00054">remmina_file_editor.h:54</a></div></div>
-<div class="ttc" id="remmina__file__editor_8h_html_a3866832d550ceac91d608900df4c8056"><div class="ttname"><a href="remmina__file__editor_8h.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a></div><div class="ttdeci">void remmina_file_editor_file_save(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01896">remmina_file_editor.c:1896</a></div></div>
-<div class="ttc" id="remmina__file__editor_8h_html_aa5c50852f8569f075eec5d5db30c2ebf"><div class="ttname"><a href="remmina__file__editor_8h.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_copy(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02059">remmina_file_editor.c:2059</a></div></div>
+<div class="ttc" id="remmina__file__editor_8h_html_a3866832d550ceac91d608900df4c8056"><div class="ttname"><a href="remmina__file__editor_8h.html#a3866832d550ceac91d608900df4c8056">remmina_file_editor_file_save</a></div><div class="ttdeci">void remmina_file_editor_file_save(RemminaFileEditor *gfe)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01990">remmina_file_editor.c:1990</a></div></div>
+<div class="ttc" id="remmina__file__editor_8h_html_aa5c50852f8569f075eec5d5db30c2ebf"><div class="ttname"><a href="remmina__file__editor_8h.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_copy(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02153">remmina_file_editor.c:2153</a></div></div>
<div class="ttc" id="remmina__file__editor_8h_html_ad2662b100a2d321db52fc1280c899208"><div class="ttname"><a href="remmina__file__editor_8h.html#ad2662b100a2d321db52fc1280c899208">RemminaFileEditorClass</a></div><div class="ttdeci">struct _RemminaFileEditorClass RemminaFileEditorClass</div></div>
-<div class="ttc" id="remmina__file__editor_8h_html_aa4e8657ca722e4cce3f3c42c0cfec51e"><div class="ttname"><a href="remmina__file__editor_8h.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02039">remmina_file_editor.c:2039</a></div></div>
+<div class="ttc" id="remmina__file__editor_8h_html_aa4e8657ca722e4cce3f3c42c0cfec51e"><div class="ttname"><a href="remmina__file__editor_8h.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02133">remmina_file_editor.c:2133</a></div></div>
<div class="ttc" id="struct___remmina_file_editor_class_html"><div class="ttname"><a href="struct___remmina_file_editor_class.html">_RemminaFileEditorClass</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00062">remmina_file_editor.h:62</a></div></div>
<div class="ttc" id="struct___remmina_file_editor_html"><div class="ttname"><a href="struct___remmina_file_editor.html">_RemminaFileEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00056">remmina_file_editor.h:56</a></div></div>
<div class="ttc" id="remmina__file__editor_8h_html_ac5b20a46b2d95b1e5e4e09006e0ee04f"><div class="ttname"><a href="remmina__file__editor_8h.html#ac5b20a46b2d95b1e5e4e09006e0ee04f">remmina_file_editor_get_type</a></div><div class="ttdeci">GType remmina_file_editor_get_type(void) G_GNUC_CONST</div></div>
-<div class="ttc" id="remmina__file__editor_8h_html_a08327d6951c345808628dbb5784aba06"><div class="ttname"><a href="remmina__file__editor_8h.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_file(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l01910">remmina_file_editor.c:1910</a></div></div>
-<div class="ttc" id="remmina__file__editor_8h_html_aa9345cfe3fb32d326b652e96ee55eaea"><div class="ttname"><a href="remmina__file__editor_8h.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02078">remmina_file_editor.c:2078</a></div></div>
-<div class="ttc" id="remmina__file__editor_8h_html_ab563344276cbcdf0fcea05b0b64c7aeb"><div class="ttname"><a href="remmina__file__editor_8h.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_full(const gchar *server, const gchar *protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02045">remmina_file_editor.c:2045</a></div></div>
+<div class="ttc" id="remmina__file__editor_8h_html_a08327d6951c345808628dbb5784aba06"><div class="ttname"><a href="remmina__file__editor_8h.html#a08327d6951c345808628dbb5784aba06">remmina_file_editor_new_from_file</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_file(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02004">remmina_file_editor.c:2004</a></div></div>
+<div class="ttc" id="remmina__file__editor_8h_html_aa9345cfe3fb32d326b652e96ee55eaea"><div class="ttname"><a href="remmina__file__editor_8h.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02172">remmina_file_editor.c:2172</a></div></div>
+<div class="ttc" id="remmina__file__editor_8h_html_ab563344276cbcdf0fcea05b0b64c7aeb"><div class="ttname"><a href="remmina__file__editor_8h.html#ab563344276cbcdf0fcea05b0b64c7aeb">remmina_file_editor_new_full</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_full(const gchar *server, const gchar *protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02139">remmina_file_editor.c:2139</a></div></div>
<div class="ttc" id="struct___remmina_file_editor_html_a8517b06116569fad2bb71b99c2f75f6a"><div class="ttname"><a href="struct___remmina_file_editor.html#a8517b06116569fad2bb71b99c2f75f6a">_RemminaFileEditor::priv</a></div><div class="ttdeci">RemminaFileEditorPriv * priv</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8h_source.html#l00059">remmina_file_editor.h:59</a></div></div>
<div class="ttc" id="remmina__file_8h_html"><div class="ttname"><a href="remmina__file_8h.html">remmina_file.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/public/remmina__file__manager_8c_source.html b/public/remmina__file__manager_8c_source.html
index b87f1770e..80ea9351b 100644
--- a/public/remmina__file__manager_8c_source.html
+++ b/public/remmina__file__manager_8c_source.html
@@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('remmina__file__manager_8c_source.html'
<div class="ttc" id="struct___remmina_file_plugin_html_a597178a88c755ebe0614897b7aa279b1"><div class="ttname"><a href="struct___remmina_file_plugin.html#a597178a88c755ebe0614897b7aa279b1">_RemminaFilePlugin::import_func</a></div><div class="ttdeci">RemminaFile *(* import_func)(struct _RemminaFilePlugin *instance, const gchar *from_file)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00108">plugin.h:108</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="remmina__file__manager_8c_html_a06196f19abc15526514a5aa59a568798"><div class="ttname"><a href="remmina__file__manager_8c.html#a06196f19abc15526514a5aa59a568798">remmina_file_manager_free_group_tree</a></div><div class="ttdeci">void remmina_file_manager_free_group_tree(GNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00336">remmina_file_manager.c:336</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00573">remmina_plugin_manager.c:573</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00575">remmina_plugin_manager.c:575</a></div></div>
<div class="ttc" id="remmina__string__array_8c_html_ab93a69850cfb4117c223a3f145ced986"><div class="ttname"><a href="remmina__string__array_8c.html#ab93a69850cfb4117c223a3f145ced986">remmina_string_array_find</a></div><div class="ttdeci">gint remmina_string_array_find(RemminaStringArray *array, const gchar *str)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__array_8c_source.html#l00092">remmina_string_array.c:92</a></div></div>
<div class="ttc" id="remmina__string__array_8c_html_a96f7bec7ce32de6cf5deadcd5aec51ec"><div class="ttname"><a href="remmina__string__array_8c.html#a96f7bec7ce32de6cf5deadcd5aec51ec">remmina_string_array_to_string</a></div><div class="ttdeci">gchar * remmina_string_array_to_string(RemminaStringArray *array)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__array_8c_source.html#l00155">remmina_string_array.c:155</a></div></div>
<div class="ttc" id="remmina__ssh_8c_html_a85d5bd836f83ef1dbbcf4657f32e0792"><div class="ttname"><a href="remmina__ssh_8c.html#a85d5bd836f83ef1dbbcf4657f32e0792">node</a></div><div class="ttdeci">node_t * node</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8c_source.html#l00142">remmina_ssh.c:142</a></div></div>
diff --git a/public/remmina__main_8c_source.html b/public/remmina__main_8c_source.html
index 80a42ae39..c443f3340 100644
--- a/public/remmina__main_8c_source.html
+++ b/public/remmina__main_8c_source.html
@@ -121,7 +121,7 @@ $(document).ready(function(){initNavTree('remmina__main_8c_source.html','');});
<div class="ttc" id="struct___remmina_main_html_aa2b3c232b59da2278215d446b93db0e5"><div class="ttname"><a href="struct___remmina_main.html#aa2b3c232b59da2278215d446b93db0e5">_RemminaMain::column_files_list_name</a></div><div class="ttdeci">GtkTreeViewColumn * column_files_list_name</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8h_source.html#l00075">remmina_main.h:75</a></div></div>
<div class="ttc" id="struct___remmina_file_plugin_html_ac4f2b0118490cede0577aaee9f2e0b5f"><div class="ttname"><a href="struct___remmina_file_plugin.html#ac4f2b0118490cede0577aaee9f2e0b5f">_RemminaFilePlugin::export_hints</a></div><div class="ttdeci">const gchar * export_hints</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00111">plugin.h:111</a></div></div>
<div class="ttc" id="remmina_8h_html"><div class="ttname"><a href="remmina_8h.html">remmina.h</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00470">remmina_plugin_manager.c:470</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00472">remmina_plugin_manager.c:472</a></div></div>
<div class="ttc" id="struct___remmina_main_html_a98a1ddd6aebc35c131f8de819a3d861f"><div class="ttname"><a href="struct___remmina_main.html#a98a1ddd6aebc35c131f8de819a3d861f">_RemminaMain::menu_popup_delete_rc</a></div><div class="ttdeci">GtkMenu * menu_popup_delete_rc</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8h_source.html#l00055">remmina_main.h:55</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_ae3c9c9853eb5bedbfeadbfac1d495b95"><div class="ttname"><a href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a></div><div class="ttdeci">void remmina_widget_pool_register(GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00056">remmina_widget_pool.c:56</a></div></div>
<div class="ttc" id="struct___remmina_main_html"><div class="ttname"><a href="struct___remmina_main.html">_RemminaMain</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8h_source.html#l00048">remmina_main.h:48</a></div></div>
@@ -132,16 +132,16 @@ $(document).ready(function(){initNavTree('remmina__main_8c_source.html','');});
<div class="ttc" id="remmina__main_8c_html_ab0d22f0e3571eb80886acb0c68005800"><div class="ttname"><a href="remmina__main_8c.html#ab0d22f0e3571eb80886acb0c68005800">remmina_main_filter_visible_func</a></div><div class="ttdeci">static gboolean remmina_main_filter_visible_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00527">remmina_main.c:527</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="remmina__monitor_8c_html_acf79b91eb05694ec967d726bd0f85e50"><div class="ttname"><a href="remmina__monitor_8c.html#acf79b91eb05694ec967d726bd0f85e50">remmina_network_monitor_status</a></div><div class="ttdeci">gboolean remmina_network_monitor_status(RemminaMonitor *rm_monitor)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__monitor_8c_source.html#l00181">remmina_monitor.c:181</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_afce14b101da527ada9b44a4503e91e07"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_export_file_handler(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00592">remmina_plugin_manager.c:592</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_afce14b101da527ada9b44a4503e91e07"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_export_file_handler(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00594">remmina_plugin_manager.c:594</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="remmina__file__manager_8c_html_a06196f19abc15526514a5aa59a568798"><div class="ttname"><a href="remmina__file__manager_8c.html#a06196f19abc15526514a5aa59a568798">remmina_file_manager_free_group_tree</a></div><div class="ttdeci">void remmina_file_manager_free_group_tree(GNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00336">remmina_file_manager.c:336</a></div></div>
<div class="ttc" id="remmina__pref__dialog_8h_html"><div class="ttname"><a href="remmina__pref__dialog_8h.html">remmina_pref_dialog.h</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00573">remmina_plugin_manager.c:573</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00575">remmina_plugin_manager.c:575</a></div></div>
<div class="ttc" id="remmina__main_8c_html_af129aea3f5f3ec56b061187a81d43e4c"><div class="ttname"><a href="remmina__main_8c.html#af129aea3f5f3ec56b061187a81d43e4c">remmina_main_search_key_event</a></div><div class="ttdeci">static gboolean remmina_main_search_key_event(GtkWidget *search_entry, GdkEventKey *event, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00870">remmina_main.c:870</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a4b4f0bbdb9e487d6c3809e8a57dc1d1c"><div class="ttname"><a href="remmina__main_8c.html#a4b4f0bbdb9e487d6c3809e8a57dc1d1c">remmina_main_on_action_tools_import</a></div><div class="ttdeci">void remmina_main_on_action_tools_import(GSimpleAction *action, GVariant *param, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01234">remmina_main.c:1234</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0ed680fdb405e7195d9f14032851eebbad14d19fdcc60e744406c5f80c1bb840a"><div class="ttname"><a href="remmina__pref_8h.html#a0ed680fdb405e7195d9f14032851eebbad14d19fdcc60e744406c5f80c1bb840a">REMMINA_ACTION_CONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00059">remmina_pref.h:59</a></div></div>
<div class="ttc" id="remmina__monitor_8c_html_ac37c2579934e206d669c1af9b51f8ef1"><div class="ttname"><a href="remmina__monitor_8c.html#ac37c2579934e206d669c1af9b51f8ef1">remmina_network_monitor_new</a></div><div class="ttdeci">RemminaMonitor * remmina_network_monitor_new()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__monitor_8c_source.html#l00220">remmina_monitor.c:220</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00609">remmina_plugin_manager.c:609</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00611">remmina_plugin_manager.c:611</a></div></div>
<div class="ttc" id="remmina__main_8c_html_ac448c53d7a2066763d2b747d269f60ee"><div class="ttname"><a href="remmina__main_8c.html#ac448c53d7a2066763d2b747d269f60ee">remmina_main_save_size</a></div><div class="ttdeci">static void remmina_main_save_size(void)</div><div class="ttdoc">Save the Remmina Main Window size to assure the main geometry at each restart. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00139">remmina_main.c:139</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_aac34dfe6c6b73b43a4656c9dce041034ae2bd62151481c5fa5823aa2d66fb67d7"><div class="ttname"><a href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034ae2bd62151481c5fa5823aa2d66fb67d7">REMMINA_VIEW_FILE_LIST</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00054">remmina_pref.h:54</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a385c44f6fb256e5716a2302a5b940388a8c5d264253ed2fc8f96ffcee508db93d"><div class="ttname"><a href="remmina__main_8c.html#a385c44f6fb256e5716a2302a5b940388a8c5d264253ed2fc8f96ffcee508db93d">FILENAME_COLUMN</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00080">remmina_main.c:80</a></div></div>
@@ -187,7 +187,7 @@ $(document).ready(function(){initNavTree('remmina__main_8c_source.html','');});
<div class="ttc" id="struct___remmina_main_html_ab3be770af5f21758fa641b274ca967ec"><div class="ttname"><a href="struct___remmina_main.html#ab3be770af5f21758fa641b274ca967ec">_RemminaMain::menu_header_button</a></div><div class="ttdeci">GtkMenuButton * menu_header_button</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8h_source.html#l00053">remmina_main.h:53</a></div></div>
<div class="ttc" id="remmina__main_8c_html_aa46e6b815c241d32a476a29053dbf296"><div class="ttname"><a href="remmina__main_8c.html#aa46e6b815c241d32a476a29053dbf296">remmina_main_load_file_tree_group</a></div><div class="ttdeci">static void remmina_main_load_file_tree_group(GtkTreeStore *store)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00407">remmina_main.c:407</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a44eb44c6391f53a19c6f1fdf9a39a8c1"><div class="ttname"><a href="remmina__main_8c.html#a44eb44c6391f53a19c6f1fdf9a39a8c1">remmina_main_on_action_connection_copy</a></div><div class="ttdeci">void remmina_main_on_action_connection_copy(GSimpleAction *action, GVariant *param, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00910">remmina_main.c:910</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_aedec4e9cf18d99a559aa51065c2bc276"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a></div><div class="ttdeci">void remmina_plugin_manager_show(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00519">remmina_plugin_manager.c:519</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_aedec4e9cf18d99a559aa51065c2bc276"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a></div><div class="ttdeci">void remmina_plugin_manager_show(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00521">remmina_plugin_manager.c:521</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a385c44f6fb256e5716a2302a5b940388ad68c7d7d2f1cfe0321e87c4a833a0756"><div class="ttname"><a href="remmina__main_8c.html#a385c44f6fb256e5716a2302a5b940388ad68c7d7d2f1cfe0321e87c4a833a0756">PLUGIN_COLUMN</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00078">remmina_main.c:78</a></div></div>
<div class="ttc" id="remmina__main_8c_html_ac767825cb87a34531306cfb587216d20"><div class="ttname"><a href="remmina__main_8c.html#ac767825cb87a34531306cfb587216d20">remmina_main_import_file_list</a></div><div class="ttdeci">static void remmina_main_import_file_list(GSList *files)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01179">remmina_main.c:1179</a></div></div>
<div class="ttc" id="remmina__icon_8h_html"><div class="ttname"><a href="remmina__icon_8h.html">remmina_icon.h</a></div></div>
@@ -234,7 +234,7 @@ $(document).ready(function(){initNavTree('remmina__main_8c_source.html','');});
<div class="ttc" id="struct___remmina_pref_html_ab43c3da7d8551c9df726996c540726f1"><div class="ttname"><a href="struct___remmina_pref.html#ab43c3da7d8551c9df726996c540726f1">_RemminaPref::view_file_mode</a></div><div class="ttdeci">gint view_file_mode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00213">remmina_pref.h:213</a></div></div>
<div class="ttc" id="remmina__string__array_8c_html_aff90e964c6541b1af02adf7ea39e6e02"><div class="ttname"><a href="remmina__string__array_8c.html#aff90e964c6541b1af02adf7ea39e6e02">remmina_string_array_new</a></div><div class="ttdeci">RemminaStringArray * remmina_string_array_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__array_8c_source.html#l00044">remmina_string_array.c:44</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a3d19095f74e9b7c92d74f11bd5a39a8c"><div class="ttname"><a href="remmina__file_8c.html#a3d19095f74e9b7c92d74f11bd5a39a8c">remmina_file_touch</a></div><div class="ttdeci">void remmina_file_touch(RemminaFile *remminafile)</div><div class="ttdoc">Update the atime and mtime of a given filename. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l01105">remmina_file.c:1105</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa9345cfe3fb32d326b652e96ee55eaea"><div class="ttname"><a href="remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02078">remmina_file_editor.c:2078</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa9345cfe3fb32d326b652e96ee55eaea"><div class="ttname"><a href="remmina__file__editor_8c.html#aa9345cfe3fb32d326b652e96ee55eaea">remmina_file_editor_new_from_filename</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02172">remmina_file_editor.c:2172</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a385c44f6fb256e5716a2302a5b940388a6e22c76fbdeaa8f724eb996db2d528bb"><div class="ttname"><a href="remmina__main_8c.html#a385c44f6fb256e5716a2302a5b940388a6e22c76fbdeaa8f724eb996db2d528bb">DATE_COLUMN</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00079">remmina_main.c:79</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a51880fc109db6457a5d0fc543c2deaf2"><div class="ttname"><a href="remmina__main_8c.html#a51880fc109db6457a5d0fc543c2deaf2">remmina_main_save_expanded_group_func</a></div><div class="ttdeci">static void remmina_main_save_expanded_group_func(GtkTreeView *tree_view, GtkTreePath *path, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00150">remmina_main.c:150</a></div></div>
<div class="ttc" id="remmina__main_8c_html_aa4d9b76d32fa500f4b9f39a19e4eaaf2"><div class="ttname"><a href="remmina__main_8c.html#aa4d9b76d32fa500f4b9f39a19e4eaaf2">remmina_main_on_show</a></div><div class="ttdeci">void remmina_main_on_show(GtkWidget *w, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01643">remmina_main.c:1643</a></div></div>
@@ -261,7 +261,7 @@ $(document).ready(function(){initNavTree('remmina__main_8c_source.html','');});
<div class="ttc" id="remmina__file_8c_html_a4884356c195dcfb4ceacf641a1e74e66"><div class="ttname"><a href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a></div><div class="ttdeci">gint remmina_file_get_int(RemminaFile *remminafile, const gchar *setting, gint default_value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00603">remmina_file.c:603</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a91f22c2834ac7f38d201d8d678f8c57b"><div class="ttname"><a href="remmina__main_8c.html#a91f22c2834ac7f38d201d8d678f8c57b">remmina_main_on_action_application_dark_theme</a></div><div class="ttdeci">void remmina_main_on_action_application_dark_theme(GSimpleAction *action, GVariant *param, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01281">remmina_main.c:1281</a></div></div>
<div class="ttc" id="remmina__about_8c_html_a3ad768979e0945a162018c6d596c90f4"><div class="ttname"><a href="remmina__about_8c.html#a3ad768979e0945a162018c6d596c90f4">remmina_about_open</a></div><div class="ttdeci">void remmina_about_open(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__about_8c_source.html#l00044">remmina_about.c:44</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa4e8657ca722e4cce3f3c42c0cfec51e"><div class="ttname"><a href="remmina__file__editor_8c.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02039">remmina_file_editor.c:2039</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa4e8657ca722e4cce3f3c42c0cfec51e"><div class="ttname"><a href="remmina__file__editor_8c.html#aa4e8657ca722e4cce3f3c42c0cfec51e">remmina_file_editor_new</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02133">remmina_file_editor.c:2133</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_aac34dfe6c6b73b43a4656c9dce041034a46530ebfd659963a54b7dae5702af1df"><div class="ttname"><a href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a46530ebfd659963a54b7dae5702af1df">REMMINA_VIEW_FILE_TREE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00055">remmina_pref.h:55</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_ae9dfd6986f18cb3d846a4933ac792fd5a94dfcc0fcf38aa8060ff843e40799284"><div class="ttname"><a href="remmina__exec_8h.html#ae9dfd6986f18cb3d846a4933ac792fd5a94dfcc0fcf38aa8060ff843e40799284">REMMINA_CONDEXIT_ONQUIT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00060">remmina_exec.h:60</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a3872c8656a8a3d5147bcc603471c1932"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a></div><div class="ttdeci">RemminaPlugin * remmina_plugin_manager_get_plugin(RemminaPluginType type, const gchar *name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00441">remmina_plugin_manager.c:441</a></div></div>
@@ -292,7 +292,7 @@ $(document).ready(function(){initNavTree('remmina__main_8c_source.html','');});
<div class="ttc" id="remmina__main_8c_html_a8ccd8303ada6e26880504fc58812fbda"><div class="ttname"><a href="remmina__main_8c.html#a8ccd8303ada6e26880504fc58812fbda">remmina_drop_types</a></div><div class="ttdeci">static GtkTargetEntry remmina_drop_types[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00126">remmina_main.c:126</a></div></div>
<div class="ttc" id="struct___remmina_main_html_aecb54d7c3dd1e86a16e24ea2e00d4ddd"><div class="ttname"><a href="struct___remmina_main.html#aecb54d7c3dd1e86a16e24ea2e00d4ddd">_RemminaMain::search_bar</a></div><div class="ttdeci">GtkSearchBar * search_bar</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8h_source.html#l00067">remmina_main.h:67</a></div></div>
<div class="ttc" id="remmina__main_8c_html_ab7c680e1f6ffeef21cb928a083d36d89"><div class="ttname"><a href="remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89">remminamain</a></div><div class="ttdeci">static RemminaMain * remminamain</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00069">remmina_main.c:69</a></div></div>
-<div class="ttc" id="remmina__file__editor_8c_html_aa5c50852f8569f075eec5d5db30c2ebf"><div class="ttname"><a href="remmina__file__editor_8c.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_copy(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02059">remmina_file_editor.c:2059</a></div></div>
+<div class="ttc" id="remmina__file__editor_8c_html_aa5c50852f8569f075eec5d5db30c2ebf"><div class="ttname"><a href="remmina__file__editor_8c.html#aa5c50852f8569f075eec5d5db30c2ebf">remmina_file_editor_new_copy</a></div><div class="ttdeci">GtkWidget * remmina_file_editor_new_copy(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__editor_8c_source.html#l02153">remmina_file_editor.c:2153</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a5445e5568a6fc04d08b620829a59334a"><div class="ttname"><a href="remmina__main_8c.html#a5445e5568a6fc04d08b620829a59334a">remmina_main_on_action_application_quit</a></div><div class="ttdeci">void remmina_main_on_action_application_quit(GSimpleAction *action, GVariant *param, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01143">remmina_main.c:1143</a></div></div>
<div class="ttc" id="struct___remmina_main_html_ac2eff9c56cc7830bcf9ca4bfdf216095"><div class="ttname"><a href="struct___remmina_main.html#ac2eff9c56cc7830bcf9ca4bfdf216095">_RemminaMain::entry_quick_connect_server</a></div><div class="ttdeci">GtkEntry * entry_quick_connect_server</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8h_source.html#l00071">remmina_main.h:71</a></div></div>
<div class="ttc" id="remmina__unlock_8c_html_a81e79e5c1c230b7e2bf27b2457801d4e"><div class="ttname"><a href="remmina__unlock_8c.html#a81e79e5c1c230b7e2bf27b2457801d4e">remmina_unlock_new</a></div><div class="ttdeci">gint remmina_unlock_new(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__unlock_8c_source.html#l00113">remmina_unlock.c:113</a></div></div>
diff --git a/public/remmina__message__panel_8c_source.html b/public/remmina__message__panel_8c_source.html
index 85f67cf64..7696039af 100644
--- a/public/remmina__message__panel_8c_source.html
+++ b/public/remmina__message__panel_8c_source.html
@@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('remmina__message__panel_8c_source.html
<div class="ttc" id="remmina__message__panel_8h_html_aabfcbcb5ac86a1edac4035264bc7d2b8a9439963721ca9d03d1a2371161336725"><div class="ttname"><a href="remmina__message__panel_8h.html#aabfcbcb5ac86a1edac4035264bc7d2b8a9439963721ca9d03d1a2371161336725">REMMINA_MESSAGE_PANEL_BUTTONTOFOCUS</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8h_source.html#l00058">remmina_message_panel.h:58</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_ae5b1825b5d4e56ecc2f25c28bb042c32"><div class="ttname"><a href="remmina__message__panel_8c.html#ae5b1825b5d4e56ecc2f25c28bb042c32">remmina_message_panel_setup_question</a></div><div class="ttdeci">void remmina_message_panel_setup_question(RemminaMessagePanel *mp, const gchar *message, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00214">remmina_message_panel.c:214</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_ab89dba73bc6832c6c5061a0d8bd0fbb4"><div class="ttname"><a href="remmina__message__panel_8c.html#ab89dba73bc6832c6c5061a0d8bd0fbb4">remmina_message_panel_field_get_filename</a></div><div class="ttdeci">gchar * remmina_message_panel_field_get_filename(RemminaMessagePanel *mp, int entryid)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00779">remmina_message_panel.c:779</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
<div class="ttc" id="struct_remmina_message_panel_private_html_a6595dbe739d97d82e36c6e0878bcf1d4"><div class="ttname"><a href="struct_remmina_message_panel_private.html#a6595dbe739d97d82e36c6e0878bcf1d4">RemminaMessagePanelPrivate::response_callback_data</a></div><div class="ttdeci">void * response_callback_data</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00051">remmina_message_panel.c:51</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_ac10f450f856ca7d9c0b6896261e9c407"><div class="ttname"><a href="remmina__message__panel_8c.html#ac10f450f856ca7d9c0b6896261e9c407">remmina_message_panel_setup_auth_x509</a></div><div class="ttdeci">void remmina_message_panel_setup_auth_x509(RemminaMessagePanel *mp, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00484">remmina_message_panel.c:484</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_a6ed806c022986b81ef4db70e6d89abc9"><div class="ttname"><a href="remmina__message__panel_8c.html#a6ed806c022986b81ef4db70e6d89abc9">remmina_message_panel_class_init</a></div><div class="ttdeci">static void remmina_message_panel_class_init(RemminaMessagePanelClass *class)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00072">remmina_message_panel.c:72</a></div></div>
@@ -115,11 +115,11 @@ $(document).ready(function(){initNavTree('remmina__message__panel_8c_source.html
<div class="ttc" id="remmina__message__panel_8h_html_ae2923c94c1caf1ac4a7eb48361d2670a"><div class="ttname"><a href="remmina__message__panel_8h.html#ae2923c94c1caf1ac4a7eb48361d2670a">RemminaMessagePanelCallback</a></div><div class="ttdeci">void(* RemminaMessagePanelCallback)(void *user_data, int button)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8h_source.html#l00067">remmina_message_panel.h:67</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_ad3ce5558696c03b0355b44b7f1b0d31e"><div class="ttname"><a href="remmina__message__panel_8c.html#ad3ce5558696c03b0355b44b7f1b0d31e">G_DEFINE_TYPE_WITH_PRIVATE</a></div><div class="ttdeci">G_DEFINE_TYPE_WITH_PRIVATE(RemminaMessagePanel, remmina_message_panel, GTK_TYPE_BOX)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00055">remmina_message_panel.c:55</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_a44054d029d4615092ae8a2ee1bf81db4"><div class="ttname"><a href="remmina__message__panel_8c.html#a44054d029d4615092ae8a2ee1bf81db4">remmina_message_panel_field_get_string</a></div><div class="ttdeci">gchar * remmina_message_panel_field_get_string(RemminaMessagePanel *mp, int entryid)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00707">remmina_message_panel.c:707</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_afae4072b7d8b54392ec08da7d6ead620"><div class="ttname"><a href="remmina__message__panel_8c.html#afae4072b7d8b54392ec08da7d6ead620">remmina_message_panel_setup_progress</a></div><div class="ttdeci">void remmina_message_panel_setup_progress(RemminaMessagePanel *mp, const gchar *message, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00128">remmina_message_panel.c:128</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
<div class="ttc" id="remmina__message__panel_8h_html_aabfcbcb5ac86a1edac4035264bc7d2b8a34c1441f93d50321cbabcfb45918c6e3"><div class="ttname"><a href="remmina__message__panel_8h.html#aabfcbcb5ac86a1edac4035264bc7d2b8a34c1441f93d50321cbabcfb45918c6e3">REMMINA_MESSAGE_PANEL_CLIENTKEYFILE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8h_source.html#l00062">remmina_message_panel.h:62</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="remmina__masterthread__exec_8h_html"><div class="ttname"><a href="remmina__masterthread__exec_8h.html">remmina_masterthread_exec.h</a></div></div>
<div class="ttc" id="struct_remmina_message_panel_private_html"><div class="ttname"><a href="struct_remmina_message_panel_private.html">RemminaMessagePanelPrivate</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00047">remmina_message_panel.c:47</a></div></div>
<div class="ttc" id="rcw_8c_html_adf764cbdea00d65edcd07bb9953ad2b7a0c34d85df8279641afad9e3c9b3a54ce"><div class="ttname"><a href="rcw_8c.html#adf764cbdea00d65edcd07bb9953ad2b7a0c34d85df8279641afad9e3c9b3a54ce">LAST_SIGNAL</a></div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00182">rcw.c:182</a></div></div>
diff --git a/public/remmina__mpchange_8c_source.html b/public/remmina__mpchange_8c_source.html
index 17bed45ca..6be6f672b 100644
--- a/public/remmina__mpchange_8c_source.html
+++ b/public/remmina__mpchange_8c_source.html
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('remmina__mpchange_8c_source.html','');
<div class="ttc" id="structmpchanger__params_html_adf52357ac6f70f8bead49111deff9568"><div class="ttname"><a href="structmpchanger__params.html#adf52357ac6f70f8bead49111deff9568">mpchanger_params::dialog</a></div><div class="ttdeci">GtkDialog * dialog</div><div class="ttdef"><b>Definition:</b> <a href="remmina__mpchange_8c_source.html#l00064">remmina_mpchange.c:64</a></div></div>
<div class="ttc" id="structmpchanger__params_html_a8e6ebba297a1eaf81a21e0b6d0483659"><div class="ttname"><a href="structmpchanger__params.html#a8e6ebba297a1eaf81a21e0b6d0483659">mpchanger_params::gatewayusername</a></div><div class="ttdeci">gchar * gatewayusername</div><div class="ttdef"><b>Definition:</b> <a href="remmina__mpchange_8c_source.html#l00057">remmina_mpchange.c:57</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00609">remmina_plugin_manager.c:609</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00611">remmina_plugin_manager.c:611</a></div></div>
<div class="ttc" id="structmpchanger__params_html_adc26bfabbc7c02beb1df988801c7972d"><div class="ttname"><a href="structmpchanger__params.html#adc26bfabbc7c02beb1df988801c7972d">mpchanger_params::ePassword1</a></div><div class="ttdeci">GtkEntry * ePassword1</div><div class="ttdef"><b>Definition:</b> <a href="remmina__mpchange_8c_source.html#l00061">remmina_mpchange.c:61</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a2123e14795b104f5fe8d77a4b7847261"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">_RemminaSecretPlugin::is_service_available</a></div><div class="ttdeci">gboolean(* is_service_available)(struct _RemminaSecretPlugin *instance)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00144">plugin.h:144</a></div></div>
<div class="ttc" id="remmina__mpchange_8h_html"><div class="ttname"><a href="remmina__mpchange_8h.html">remmina_mpchange.h</a></div></div>
diff --git a/public/remmina__plugin__manager_8c.html b/public/remmina__plugin__manager_8c.html
index 834a437d4..5b246ab49 100644
--- a/public/remmina__plugin__manager_8c.html
+++ b/public/remmina__plugin__manager_8c.html
@@ -354,7 +354,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00470">470</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00472">472</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -394,7 +394,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00592">592</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00594">594</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -414,7 +414,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00573">573</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00575">575</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -464,7 +464,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00609">609</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00611">611</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -514,7 +514,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00634">634</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00636">636</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -570,7 +570,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00615">615</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00617">617</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -618,7 +618,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00519">519</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00521">521</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -656,7 +656,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00508">508</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00510">510</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -684,7 +684,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00490">490</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00492">492</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -703,7 +703,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00501">501</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00503">503</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
diff --git a/public/remmina__plugin__manager_8c_source.html b/public/remmina__plugin__manager_8c_source.html
index a459523c2..711737bea 100644
--- a/public/remmina__plugin__manager_8c_source.html
+++ b/public/remmina__plugin__manager_8c_source.html
@@ -86,14 +86,14 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="title">remmina_plugin_manager.c</div> </div>
</div><!--header-->
<div class="contents">
-<a href="remmina__plugin__manager_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;config.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;gmodule.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;gio/gio.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkx.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#elif defined(GDK_WINDOWING_WAYLAND)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkwayland.h&gt;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__main_8h.html">remmina_main.h</a>&quot;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__manager_8h.html">remmina_file_manager.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__protocol__widget_8h.html">remmina_protocol_widget.h</a>&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__log_8h.html">remmina_log.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rcw_8h.html">rcw.h</a>&quot;</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a>&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__native_8h.html">remmina_plugin_native.h</a>&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__masterthread__exec_8h.html">remmina_masterthread_exec.h</a>&quot;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e"> 64</a></span>&#160;<span class="keyword">static</span> GPtrArray* <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a> = NULL;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">/* A GHashTable of GHashTables where to store the names of the encrypted settings */</span></div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49"> 67</a></span>&#160;<span class="keyword">static</span> GHashTable *<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a> = NULL;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">/* There can be only one secret plugin loaded */</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a5e79d6abd0b12c1ed2bb33988e41857e"> 70</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *<a class="code" href="remmina__plugin__manager_8c.html#a5e79d6abd0b12c1ed2bb33988e41857e">remmina_secret_plugin</a> = NULL;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// TRANSLATORS: &quot;Language Wrapper&quot; is a wrapper for plugins written in other programmin languages (Python in this context)</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10"> 73</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *<a class="code" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10">remmina_plugin_type_name</a>[] =</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{ <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Protocol&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Entry&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;File&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Tool&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Preference&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Secret&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Language Wrapper&quot;</span>), NULL };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#ae78fa0b2eab8c987d810c6997b136d2e"> 76</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina__plugin__manager_8c.html#ae78fa0b2eab8c987d810c6997b136d2e">remmina_plugin_manager_compare_func</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> **a, <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> **b)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> g_strcmp0((*a)-&gt;name, (*b)-&gt;name);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a7e75f54171749cfec5c0cbbb1095ed86"> 82</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#a7e75f54171749cfec5c0cbbb1095ed86">htdestroy</a>(gpointer ht)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; g_hash_table_unref(ht);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a72f0dbafb41acc4a5834f5c0719e6046"> 87</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#a72f0dbafb41acc4a5834f5c0719e6046">init_settings_cache</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *protocol_plugin;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a>* setting_iter;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GHashTable *pht;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">/* This code make a encrypted setting cache only for protocol plugins */</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> != <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a> == NULL)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a> = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, <a class="code" href="remmina__plugin__manager_8c.html#a7e75f54171749cfec5c0cbbb1095ed86">htdestroy</a>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (!(pht = g_hash_table_lookup(<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>))) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; pht = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; g_hash_table_insert(<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a>, g_strdup(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>), pht);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">/* Some settings are encrypted &quot;by name&quot; */</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">/* g_hash_table_insert(pht, g_strdup(&quot;proxy_password&quot;), (gpointer)TRUE); */</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; g_hash_table_insert(pht, g_strdup(<span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>), (gpointer)TRUE);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; g_hash_table_insert(pht, g_strdup(<span class="stringliteral">&quot;ssh_tunnel_passphrase&quot;</span>), (gpointer)TRUE);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">/* ssh_password is no longer used starting from remmina 1.4.</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> * But we MUST mark it as encrypted setting, or the migration procedure will fail */</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; g_hash_table_insert(pht, g_strdup(<span class="stringliteral">&quot;ssh_password&quot;</span>), (gpointer)TRUE);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">/* Other settings are encrypted because of their type */</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; protocol_plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)plugin;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aae09a7e2c978cc36e85d0f295518978d">basic_settings</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; g_hash_table_insert(pht, g_strdup(<a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(setting_iter)), (gpointer)TRUE);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; setting_iter++;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aceb00d9dff794500ccb04a1373eb32db">advanced_settings</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; g_hash_table_insert(pht, g_strdup(<a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(setting_iter)), (gpointer)TRUE);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; setting_iter++;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#ad4cb2d85f9cf76089a082122f2891fb8"> 139</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__plugin__manager_8c.html#ad4cb2d85f9cf76089a082122f2891fb8">remmina_plugin_manager_register_plugin</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa0d17e841a53921a7a6156f5d30e9f09c">REMMINA_PLUGIN_TYPE_SECRET</a>) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; g_print(<span class="stringliteral">&quot;Remmina plugin %s (type=%s) has been registered, but is not yet initialized/activated. &quot;</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="stringliteral">&quot;The initialization order is %d.\n&quot;</span>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; _(<a class="code" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10">remmina_plugin_type_name</a>[plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a>]),</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; ((<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>*)plugin)-&gt;init_order);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a72f0dbafb41acc4a5834f5c0719e6046">init_settings_cache</a>(plugin);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; g_ptr_array_add(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, plugin);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; g_ptr_array_sort(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, (GCompareFunc)<a class="code" href="remmina__plugin__manager_8c.html#ae78fa0b2eab8c987d810c6997b136d2e">remmina_plugin_manager_compare_func</a>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a1ef27b953decb0c707ec9a18da47a38f"> 155</a></span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8c.html#a1ef27b953decb0c707ec9a18da47a38f">remmina_gtksocket_available</a>()</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GdkDisplayManager* dm;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GdkDisplay* d;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; gboolean available;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; dm = gdk_display_manager_get();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; d = gdk_display_manager_get_default_display(dm);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; available = FALSE;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (GDK_IS_X11_DISPLAY(d)) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">/* GtkSocket support is available only under X.Org */</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; available = TRUE;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> available;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a3996819fdb2c833f3c64c2ad399e5f10"> 174</a></span>&#160;<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> <a class="code" href="remmina__plugin__manager_8c.html#a3996819fdb2c833f3c64c2ad399e5f10">remmina_plugin_manager_service</a> =</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#ad4cb2d85f9cf76089a082122f2891fb8">remmina_plugin_manager_register_plugin</a>,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a>,</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a41b62f211a8a8e960bc80aa1ba6b0380">remmina_protocol_widget_set_width</a>,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a>,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aadd106cec729a80405c6097e4c662044">remmina_protocol_widget_set_height</a>,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget_get_current_scale_mode</a>,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a>,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a>,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget_has_error</a>,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget_set_error</a>,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget_is_closed</a>,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget_get_file</a>,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget_emit_signal</a>,</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget_register_hostkey</a>,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget_start_direct_tunnel</a>,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget_start_reverse_tunnel</a>,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a172fa9cf2ce196c9846a3e47ea9036b4">remmina_protocol_widget_start_xport_tunnel</a>,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget_set_display</a>,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a1cae52cad394f317c712eb4fd709d261">remmina_protocol_widget_signal_connection_closed</a>,</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a05b5edfc3d3d0dcff1745d1d35aaca5c">remmina_protocol_widget_signal_connection_opened</a>,</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa88afa1e3f04974974a8be324b0a930e">remmina_protocol_widget_update_align</a>,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget_lock_dynres</a>,</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2551dd6f53480609596d2695040fba5d">remmina_protocol_widget_unlock_dynres</a>,</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9acf045c5a3eec5b7f748678dee0d3ee">remmina_protocol_widget_desktop_resize</a>,</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aebc7c7d34c470081a52aa35d998ce868">remmina_protocol_widget_panel_auth</a>,</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget_panel_new_certificate</a>,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#acf75fd4bac28a3d53da064b2905f23c1">remmina_protocol_widget_panel_changed_certificate</a>,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a96159bd8e9d70c74967e666e2f188df0">remmina_protocol_widget_get_username</a>,</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget_get_password</a>,</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget_get_domain</a>,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget_get_savepassword</a>,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget_panel_authx509</a>,</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget_get_cacert</a>,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget_get_cacrl</a>,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget_get_clientcert</a>,</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a08d312825fc0de9f9286279d99f763a1">remmina_protocol_widget_get_clientkey</a>,</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget_save_cred</a>,</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget_panel_show_listen</a>,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a7ed85f4ea19e0660dbf46f4f3dc4b895">remmina_protocol_widget_panel_show_retry</a>,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget_panel_show</a>,</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget_panel_hide</a>,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a12eddf3428a53201ee0a2ec422d2fa4a">remmina_protocol_widget_ssh_exec</a>,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a66263e6e7da79357ceb80d32b191d9f2">remmina_protocol_widget_chat_open</a>,</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a4a3a9ba7422fc302b0b412ac771c9953">remmina_protocol_widget_chat_close</a>,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget_chat_receive</a>,</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget_send_keys_signals</a>,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="remmina__file__manager_8c.html#aa65bc30beb59d607ba430d966e7e27f5">remmina_file_get_datadir</a>,</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a>,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>,</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="remmina__file_8c.html#ad514c2523ff0c919ddf535e3dbad9f3a">remmina_file_get_secret</a>,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>,</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="remmina__file_8c.html#a4e31f91e2398f16844f58c1cf13582da">remmina_file_get_double</a>,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="remmina__file_8c.html#a503e53fe49430a5ed310c342c946c014">remmina_file_unsave_passwords</a>,</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="remmina__pref_8c.html#a4fbb2aff07d1fef416352d8b80d79e02">remmina_pref_set_value</a>,</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="remmina__pref_8c.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref_get_value</a>,</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="remmina__pref_8c.html#a37cd589f00c94cb28eabb1bce4646d0b">remmina_pref_get_scale_quality</a>,</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="remmina__pref_8c.html#a6982152fd0492586819ce1760a853e99">remmina_pref_get_sshtunnel_port</a>,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="remmina__pref_8c.html#a12e52ee4ab89912280605e36ee069267">remmina_pref_get_ssh_loglevel</a>,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="remmina__pref_8c.html#a98b783e4c5c1dae695fe554f52f94a23">remmina_pref_get_ssh_parseconfig</a>,</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="remmina__pref_8c.html#aa263ec4481bcac099b7a294fe42179b9">remmina_pref_keymap_get_table</a>,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="remmina__pref_8c.html#aaac087c000b0863a296f2739f6344af8">remmina_pref_keymap_get_keyval</a>,</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a>,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a>,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a>,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a>,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a>,</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a>,</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a>,</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>,</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_open_from_file_full</a>,</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="remmina__public_8c.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public_open_unix_sock</a>,</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a>,</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="remmina__masterthread__exec_8c.html#a3a52e863a3a3da6da6bb5d36c13b7ff4">remmina_masterthread_exec_is_main_thread</a>,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a1ef27b953decb0c707ec9a18da47a38f">remmina_gtksocket_available</a>,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab4c6435ef92e34a94270069ce1861907">remmina_protocol_widget_get_profile_remote_width</a>,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget_get_profile_remote_height</a>,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget_get_name</a>,</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a>,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a>,</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a41b62f211a8a8e960bc80aa1ba6b0380">remmina_protocol_widget_set_width</a>,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aadd106cec729a80405c6097e4c662044">remmina_protocol_widget_set_height</a>,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget_get_current_scale_mode</a>,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a>,</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a>,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget_set_error</a>,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget_has_error</a>,</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2067c19b160eb43bddda6c6c6e8d6045">remmina_protocol_widget_gtkviewport</a>,</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget_is_closed</a>,</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget_get_file</a>,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aebc7c7d34c470081a52aa35d998ce868">remmina_protocol_widget_panel_auth</a>,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget_register_hostkey</a>,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget_start_direct_tunnel</a>,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget_start_reverse_tunnel</a>,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget_send_keys_signals</a>,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget_chat_receive</a>,</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget_panel_hide</a>,</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a66263e6e7da79357ceb80d32b191d9f2">remmina_protocol_widget_chat_open</a>,</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a12eddf3428a53201ee0a2ec422d2fa4a">remmina_protocol_widget_ssh_exec</a>,</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget_panel_show</a>,</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a7ed85f4ea19e0660dbf46f4f3dc4b895">remmina_protocol_widget_panel_show_retry</a>,</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a172fa9cf2ce196c9846a3e47ea9036b4">remmina_protocol_widget_start_xport_tunnel</a>,</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget_set_display</a>,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a1cae52cad394f317c712eb4fd709d261">remmina_protocol_widget_signal_connection_closed</a>,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a05b5edfc3d3d0dcff1745d1d35aaca5c">remmina_protocol_widget_signal_connection_opened</a>,</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa88afa1e3f04974974a8be324b0a930e">remmina_protocol_widget_update_align</a>,</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2551dd6f53480609596d2695040fba5d">remmina_protocol_widget_unlock_dynres</a>,</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9acf045c5a3eec5b7f748678dee0d3ee">remmina_protocol_widget_desktop_resize</a>,</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget_panel_new_certificate</a>,</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#acf75fd4bac28a3d53da064b2905f23c1">remmina_protocol_widget_panel_changed_certificate</a>,</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a96159bd8e9d70c74967e666e2f188df0">remmina_protocol_widget_get_username</a>,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget_get_password</a>,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget_get_domain</a>,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget_get_savepassword</a>,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget_panel_authx509</a>,</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget_get_cacert</a>,</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget_get_cacrl</a>,</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget_get_clientcert</a>,</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a08d312825fc0de9f9286279d99f763a1">remmina_protocol_widget_get_clientkey</a>,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget_save_cred</a>,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget_panel_show_listen</a>,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_open_from_file_full</a>,</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="remmina__main_8c.html#ab2a1a54320992fb796850ffbd6a63589">remmina_main_show_dialog</a>,</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="remmina__main_8c.html#a7740488de65c0e642895cc9dfba07b6e">remmina_main_get_window</a>,</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;};</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a06a7e80f6a756ec12b2ac12ea3d5f206"> 313</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="remmina__plugin__manager_8c.html#a06a7e80f6a756ec12b2ac12ea3d5f206">get_filename_ext</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* last = strrchr(filename, <span class="charliteral">&#39;/&#39;</span>);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *dot = strrchr(last, <span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">if</span>(!dot || dot == filename) <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> dot + 1;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;}</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#ac90d2ffe3909722ca3daedac28da76e5"> 320</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina__plugin__manager_8c.html#ac90d2ffe3909722ca3daedac28da76e5">compare_secret_plugin_init_order</a>(gconstpointer a, gconstpointer b)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;{</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *sa, *sb;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; sa = (<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>*)a;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; sb = (<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>*)b;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (sa-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">init_order</a> &gt; sb-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">init_order</a>)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sa-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">init_order</a> &lt; sb-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">init_order</a>)</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;}</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a92c2264598a43702594535cebbf4d8cd"> 334</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#a9df07091ff7d32bcde595a6d3a3598f5">remmina_plugin_manager_init</a>()</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;{</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; GDir *dir;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">const</span> gchar *name, *ptr;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; gchar *fullpath;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *sp;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordtype">int</span> i, j;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; GSList *secret_plugins;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; GSList *sple;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; GPtrArray *alternative_language_plugins;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a> = g_ptr_array_new();</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; alternative_language_plugins = g_ptr_array_new();</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span> (!g_module_supported()) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; g_print(<span class="stringliteral">&quot;Dynamic loading of plugins is not supported on this platform!\n&quot;</span>);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; g_print(<span class="stringliteral">&quot;Load modules from %s\n&quot;</span>, REMMINA_RUNTIME_PLUGINDIR);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; dir = g_dir_open(REMMINA_RUNTIME_PLUGINDIR, 0, NULL);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span> (dir == NULL)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">while</span> ((name = g_dir_read_name(dir)) != NULL) {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span> ((ptr = strrchr(name, <span class="charliteral">&#39;.&#39;</span>)) == NULL)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; ptr++;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; fullpath = g_strdup_printf(REMMINA_RUNTIME_PLUGINDIR <span class="stringliteral">&quot;/%s&quot;</span>, name);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__plugin__manager_8c.html#a1a5e6eeb6e116b5768d5e0c02544149d">remmina_plugin_manager_loader_supported</a>(ptr)) {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; g_ptr_array_add(alternative_language_plugins, g_strdup_printf(REMMINA_RUNTIME_PLUGINDIR <span class="stringliteral">&quot;/%s&quot;</span>, name));</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; g_free(fullpath);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="remmina__plugin__native_8c.html#ae60c5371a41a83ef94c6a2b3dc8c9520">remmina_plugin_native_load</a>(&amp;remmina_plugin_manager_service, fullpath);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; g_free(fullpath);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; g_dir_close(dir);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">while</span> (alternative_language_plugins-&gt;len &gt; 0) {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; gboolean has_loaded = FALSE;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; gchar* name = (gchar*)g_ptr_array_remove_index(alternative_language_plugins, 0);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">const</span> gchar* ext = <a class="code" href="remmina__plugin__manager_8c.html#a06a7e80f6a756ec12b2ac12ea3d5f206">get_filename_ext</a>(name);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len &amp;&amp; !has_loaded; j++) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; plugin = (<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, j);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa93a45ba624f83d17a6d8619933a54b3e">REMMINA_PLUGIN_TYPE_LANGUAGE_WRAPPER</a>) {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="struct___remmina_language_wrapper_plugin.html">RemminaLanguageWrapperPlugin</a>* wrapper_plugin = (<a class="code" href="struct___remmina_language_wrapper_plugin.html">RemminaLanguageWrapperPlugin</a>*)plugin;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> gchar** supported_extention = wrapper_plugin-&gt;<a class="code" href="struct___remmina_language_wrapper_plugin.html#aea49b9e057254020e13f615331ef239b">supported_extentions</a>;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">while</span> (*supported_extention) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (g_str_equal(*supported_extention, ext)) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; has_loaded = wrapper_plugin-&gt;<a class="code" href="struct___remmina_language_wrapper_plugin.html#a1270e29b6e988d6b320ef3f0465b6272">load</a>(wrapper_plugin, name);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (has_loaded) {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; supported_extention++;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span> (has_loaded) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">if</span> (!has_loaded) {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; g_print(<span class="stringliteral">&quot;%s: Skip unsupported file type &#39;%s&#39;\n&quot;</span>, name, ext);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; g_free(name);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">/* Now all secret plugins needs to initialize, following their init_order.</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment"> * The 1st plugin which will initialize correctly will be</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="comment"> * the default remmina_secret_plugin */</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span> (remmina_secret_plugin)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; g_print(<span class="stringliteral">&quot;Internal ERROR: remmina_secret_plugin must be null here\n&quot;</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; secret_plugins = NULL;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; plugin = (<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa0d17e841a53921a7a6156f5d30e9f09c">REMMINA_PLUGIN_TYPE_SECRET</a>) {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; secret_plugins = g_slist_insert_sorted(secret_plugins, (gpointer)plugin, <a class="code" href="remmina__plugin__manager_8c.html#ac90d2ffe3909722ca3daedac28da76e5">compare_secret_plugin_init_order</a>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; sple = secret_plugins;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">while</span>(sple != NULL) {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; sp = (<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>*)sple-&gt;data;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; if (sp-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a6c664274cd540fea91013d298d1ef031">init</a>(sp)) {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; g_print(<span class="stringliteral">&quot;The %s secret plugin has been initialized and it will be your default secret plugin\n&quot;</span>,</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; sp-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a197b28d8b71ccb0c91ce8bf27690968a">name</a>);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; remmina_secret_plugin = sp;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; sple = sple-&gt;next;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; g_slist_free(secret_plugins);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; g_ptr_array_free(alternative_language_plugins, TRUE);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;}</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a1a5e6eeb6e116b5768d5e0c02544149d"> 436</a></span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8c.html#a1a5e6eeb6e116b5768d5e0c02544149d">remmina_plugin_manager_loader_supported</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filetype) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> g_str_equal(G_MODULE_SUFFIX, filetype);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;}</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a3872c8656a8a3d5147bcc603471c1932"> 441</a></span>&#160;<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>* <a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> type, <span class="keyword">const</span> gchar *name)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; gint i;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; plugin = (<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == type &amp;&amp; g_strcmp0(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>, name) == 0) {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">return</span> plugin;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;}</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#af60b8edfa50563ae4c7593efc3deed55"> 456</a></span>&#160;<span class="keyword">const</span> gchar *<a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(<span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a>* setting)</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;{</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a> == NULL) {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;server&quot;</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>)</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;password&quot;</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;resolution&quot;</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;missing_setting_name_into_plugin_RemminaProtocolSetting&quot;</span>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">return</span> setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;}</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a13f13a6a4280268656f258cb5aeff031"> 470</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> type, <a class="code" href="remmina__plugin__manager_8h.html#a68d4ed61b9d039dd06ba4252a8971c18">RemminaPluginFunc</a> func, gpointer data)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; gint i;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; plugin = (<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == type) {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; func((gchar*)plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>, plugin, data);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;}</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="comment">/* A copy of remmina_plugin_manager_show and remmina_plugin_manager_show_for_each</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="comment"> * This is because we want to print the list of plugins, and their versions, to the standard output</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="comment"> * with the remmina command line option --full-version instead of using the plugins widget</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="comment"> ** @todo Investigate to use only GListStore and than pass the elements to be shown to 2 separate</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="comment"> * functions</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="comment"> * WARNING: GListStore is supported only from GLib 2.44 */</span></div><div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07"> 490</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07">remmina_plugin_manager_show_for_each_stdout</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin)</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;{</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; g_print(<span class="stringliteral">&quot;%-20s%-16s%-64s%-10s\n&quot;</span>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>,</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; _(<a class="code" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10">remmina_plugin_type_name</a>[plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a>]),</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; g_dgettext(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">domain</a>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a4ac66b7ebefb9bd8167737eb1af83cde">description</a>),</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; plugin-&gt;<a class="code" href="struct___remmina_plugin.html#aecdad5d7ff5bdfbf0ce80b4b73f65099">version</a>);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;}</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#afe0881986b2a64bfb5460981dadcf28d"> 501</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a>()</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;{</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; g_print(<span class="stringliteral">&quot;%-20s%-16s%-64s%-10s\n&quot;</span>, <span class="stringliteral">&quot;NAME&quot;</span>, <span class="stringliteral">&quot;TYPE&quot;</span>, <span class="stringliteral">&quot;DESCRIPTION&quot;</span>, <span class="stringliteral">&quot;PLUGIN AND LIBRARY VERSION&quot;</span>);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; g_ptr_array_foreach(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, (GFunc)<a class="code" href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07">remmina_plugin_manager_show_for_each_stdout</a>, NULL);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;}</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c"> 508</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c">remmina_plugin_manager_show_for_each</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin, GtkListStore *store)</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;{</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; GtkTreeIter iter;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; gtk_list_store_append(store, &amp;iter);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; gtk_list_store_set(store, &amp;iter, 0, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>, 1, _(<a class="code" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10">remmina_plugin_type_name</a>[plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a>]), 2,</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; g_dgettext(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">domain</a>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a4ac66b7ebefb9bd8167737eb1af83cde">description</a>), 3, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#aecdad5d7ff5bdfbf0ce80b4b73f65099">version</a>, -1);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;}</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#aedec4e9cf18d99a559aa51065c2bc276"> 519</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a>(GtkWindow *parent)</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;{</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; GtkWidget *dialog;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; GtkWidget *scrolledwindow;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; GtkWidget *tree;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; GtkCellRenderer *renderer;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; GtkTreeViewColumn *column;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; GtkListStore *store;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; dialog = gtk_dialog_new_with_buttons(_(<span class="stringliteral">&quot;Plugins&quot;</span>), parent, GTK_DIALOG_MODAL, _(<span class="stringliteral">&quot;_OK&quot;</span>), GTK_RESPONSE_ACCEPT, NULL);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; g_signal_connect(G_OBJECT(dialog), <span class="stringliteral">&quot;response&quot;</span>, G_CALLBACK(gtk_widget_destroy), dialog);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; gtk_window_set_default_size(GTK_WINDOW(dialog), 500, 350);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; scrolledwindow = gtk_scrolled_window_new(NULL, NULL);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; gtk_widget_show(scrolledwindow);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), scrolledwindow, TRUE, TRUE, 0);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; tree = gtk_tree_view_new();</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; gtk_container_add(GTK_CONTAINER(scrolledwindow), tree);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; gtk_widget_show(tree);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; store = gtk_list_store_new(4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; g_ptr_array_foreach(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, (GFunc)<a class="code" href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c">remmina_plugin_manager_show_for_each</a>, store);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store));</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; renderer = gtk_cell_renderer_text_new();</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; column = gtk_tree_view_column_new_with_attributes(_(<span class="stringliteral">&quot;Name&quot;</span>), renderer, <span class="stringliteral">&quot;text&quot;</span>, 0, NULL);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; gtk_tree_view_column_set_resizable(column, TRUE);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; gtk_tree_view_column_set_sort_column_id(column, 0);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; renderer = gtk_cell_renderer_text_new();</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; column = gtk_tree_view_column_new_with_attributes(_(<span class="stringliteral">&quot;Type&quot;</span>), renderer, <span class="stringliteral">&quot;text&quot;</span>, 1, NULL);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; gtk_tree_view_column_set_resizable(column, TRUE);</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; gtk_tree_view_column_set_sort_column_id(column, 1);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; renderer = gtk_cell_renderer_text_new();</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; column = gtk_tree_view_column_new_with_attributes(_(<span class="stringliteral">&quot;Description&quot;</span>), renderer, <span class="stringliteral">&quot;text&quot;</span>, 2, NULL);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; gtk_tree_view_column_set_resizable(column, TRUE);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; gtk_tree_view_column_set_sort_column_id(column, 2);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; renderer = gtk_cell_renderer_text_new();</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; column = gtk_tree_view_column_new_with_attributes(_(<span class="stringliteral">&quot;Version&quot;</span>), renderer, <span class="stringliteral">&quot;text&quot;</span>, 3, NULL);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; gtk_tree_view_column_set_resizable(column, TRUE);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; gtk_tree_view_column_set_sort_column_id(column, 3);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; gtk_widget_show(dialog);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;}</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a859348bddc9069f06195915692b65076"> 573</a></span>&#160;<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a>* <a class="code" href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a>(<span class="keyword">const</span> gchar *file)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;{</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a> *plugin;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; gint i;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; plugin = (<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_file_plugin.html#a3ff85e56bf902817630aafea67e3e494">type</a> != <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac">REMMINA_PLUGIN_TYPE_FILE</a>)</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_file_plugin.html#a5cbc050a2735ee5d896a110a25e91ca9">import_test_func</a>(plugin, file)) {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> plugin;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; }</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;}</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#afce14b101da527ada9b44a4503e91e07"> 592</a></span>&#160;<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a>* <a class="code" href="remmina__plugin__manager_8c.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;{</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a> *plugin;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; gint i;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; plugin = (<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_file_plugin.html#a3ff85e56bf902817630aafea67e3e494">type</a> != <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac">REMMINA_PLUGIN_TYPE_FILE</a>)</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_file_plugin.html#a0a3d5cd1b41d206d01ba52ab5ea554b6">export_test_func</a>(plugin, remminafile)) {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">return</span> plugin;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; }</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;}</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#ad380a98f6624aa8c830015c8b428b7b4"> 609</a></span>&#160;<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>* <a class="code" href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;{</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__plugin__manager_8c.html#a5e79d6abd0b12c1ed2bb33988e41857e">remmina_secret_plugin</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;}</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a1668951fd7067f2c405e001836855080"> 615</a></span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8c.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> ptype, <span class="keyword">const</span> gchar* name, <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a> ftype)</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;{</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a>* plugin;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a>*)<a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(ptype, name);</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">if</span> (plugin == NULL) {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">for</span> (feature = plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#afa1a3a21c504b386cecfb42d1c9e6bff">features</a>; feature &amp;&amp; feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a>; feature++) {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a> == ftype)</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;}</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#aef243c58b9e8c778232d5acb32c7729b"> 634</a></span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a>(<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *pp, <span class="keyword">const</span> <span class="keywordtype">char</span> *setting)</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;{</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; GHashTable *pht;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a> == NULL)</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">if</span> (!(pht = g_hash_table_lookup(<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a>, pp-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">name</a>)))</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">if</span> (!g_hash_table_lookup(pht, setting))</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;}</div><div class="ttc" id="remmina__protocol__widget_8c_html_a25bcb2ae99449624fed6f770218e3d25"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a></div><div class="ttdeci">gboolean remmina_protocol_widget_get_expand(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01425">remmina_protocol_widget.c:1425</a></div></div>
+<a href="remmina__plugin__manager_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;config.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;gmodule.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;gio/gio.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkx.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#elif defined(GDK_WINDOWING_WAYLAND)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkwayland.h&gt;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__main_8h.html">remmina_main.h</a>&quot;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__manager_8h.html">remmina_file_manager.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__protocol__widget_8h.html">remmina_protocol_widget.h</a>&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__log_8h.html">remmina_log.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rcw_8h.html">rcw.h</a>&quot;</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a>&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__native_8h.html">remmina_plugin_native.h</a>&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__masterthread__exec_8h.html">remmina_masterthread_exec.h</a>&quot;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e"> 64</a></span>&#160;<span class="keyword">static</span> GPtrArray* <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a> = NULL;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">/* A GHashTable of GHashTables where to store the names of the encrypted settings */</span></div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49"> 67</a></span>&#160;<span class="keyword">static</span> GHashTable *<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a> = NULL;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">/* There can be only one secret plugin loaded */</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a5e79d6abd0b12c1ed2bb33988e41857e"> 70</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *<a class="code" href="remmina__plugin__manager_8c.html#a5e79d6abd0b12c1ed2bb33988e41857e">remmina_secret_plugin</a> = NULL;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// TRANSLATORS: &quot;Language Wrapper&quot; is a wrapper for plugins written in other programmin languages (Python in this context)</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10"> 73</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *<a class="code" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10">remmina_plugin_type_name</a>[] =</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{ <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Protocol&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Entry&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;File&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Tool&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Preference&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Secret&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Language Wrapper&quot;</span>), NULL };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#ae78fa0b2eab8c987d810c6997b136d2e"> 76</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina__plugin__manager_8c.html#ae78fa0b2eab8c987d810c6997b136d2e">remmina_plugin_manager_compare_func</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> **a, <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> **b)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> g_strcmp0((*a)-&gt;name, (*b)-&gt;name);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a7e75f54171749cfec5c0cbbb1095ed86"> 82</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#a7e75f54171749cfec5c0cbbb1095ed86">htdestroy</a>(gpointer ht)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; g_hash_table_unref(ht);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a72f0dbafb41acc4a5834f5c0719e6046"> 87</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#a72f0dbafb41acc4a5834f5c0719e6046">init_settings_cache</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *protocol_plugin;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a>* setting_iter;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GHashTable *pht;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">/* This code make a encrypted setting cache only for protocol plugins */</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> != <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a> == NULL)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a> = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, <a class="code" href="remmina__plugin__manager_8c.html#a7e75f54171749cfec5c0cbbb1095ed86">htdestroy</a>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (!(pht = g_hash_table_lookup(<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>))) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; pht = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; g_hash_table_insert(<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a>, g_strdup(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>), pht);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">/* Some settings are encrypted &quot;by name&quot; */</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">/* g_hash_table_insert(pht, g_strdup(&quot;proxy_password&quot;), (gpointer)TRUE); */</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; g_hash_table_insert(pht, g_strdup(<span class="stringliteral">&quot;ssh_tunnel_password&quot;</span>), (gpointer)TRUE);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; g_hash_table_insert(pht, g_strdup(<span class="stringliteral">&quot;ssh_tunnel_passphrase&quot;</span>), (gpointer)TRUE);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">/* ssh_password is no longer used starting from remmina 1.4.</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> * But we MUST mark it as encrypted setting, or the migration procedure will fail */</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; g_hash_table_insert(pht, g_strdup(<span class="stringliteral">&quot;ssh_password&quot;</span>), (gpointer)TRUE);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">/* Other settings are encrypted because of their type */</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; protocol_plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *)plugin;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aae09a7e2c978cc36e85d0f295518978d">basic_settings</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; g_hash_table_insert(pht, g_strdup(<a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(setting_iter)), (gpointer)TRUE);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; setting_iter++;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; setting_iter = protocol_plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#aceb00d9dff794500ccb04a1373eb32db">advanced_settings</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (setting_iter) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">while</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> != <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (setting_iter-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; g_hash_table_insert(pht, g_strdup(<a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(setting_iter)), (gpointer)TRUE);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; setting_iter++;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#ad4cb2d85f9cf76089a082122f2891fb8"> 139</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__plugin__manager_8c.html#ad4cb2d85f9cf76089a082122f2891fb8">remmina_plugin_manager_register_plugin</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa0d17e841a53921a7a6156f5d30e9f09c">REMMINA_PLUGIN_TYPE_SECRET</a>) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; g_print(<span class="stringliteral">&quot;Remmina plugin %s (type=%s) has been registered, but is not yet initialized/activated. &quot;</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="stringliteral">&quot;The initialization order is %d.\n&quot;</span>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; _(<a class="code" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10">remmina_plugin_type_name</a>[plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a>]),</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; ((<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>*)plugin)-&gt;init_order);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a72f0dbafb41acc4a5834f5c0719e6046">init_settings_cache</a>(plugin);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; g_ptr_array_add(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, plugin);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; g_ptr_array_sort(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, (GCompareFunc)<a class="code" href="remmina__plugin__manager_8c.html#ae78fa0b2eab8c987d810c6997b136d2e">remmina_plugin_manager_compare_func</a>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a1ef27b953decb0c707ec9a18da47a38f"> 155</a></span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8c.html#a1ef27b953decb0c707ec9a18da47a38f">remmina_gtksocket_available</a>()</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GdkDisplayManager* dm;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GdkDisplay* d;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; gboolean available;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; dm = gdk_display_manager_get();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; d = gdk_display_manager_get_default_display(dm);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; available = FALSE;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (GDK_IS_X11_DISPLAY(d)) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">/* GtkSocket support is available only under X.Org */</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; available = TRUE;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> available;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a3996819fdb2c833f3c64c2ad399e5f10"> 174</a></span>&#160;<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> <a class="code" href="remmina__plugin__manager_8c.html#a3996819fdb2c833f3c64c2ad399e5f10">remmina_plugin_manager_service</a> =</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#ad4cb2d85f9cf76089a082122f2891fb8">remmina_plugin_manager_register_plugin</a>,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a>,</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a41b62f211a8a8e960bc80aa1ba6b0380">remmina_protocol_widget_set_width</a>,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a>,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aadd106cec729a80405c6097e4c662044">remmina_protocol_widget_set_height</a>,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget_get_current_scale_mode</a>,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a>,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a>,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget_has_error</a>,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget_set_error</a>,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget_is_closed</a>,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget_get_file</a>,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget_emit_signal</a>,</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget_register_hostkey</a>,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget_start_direct_tunnel</a>,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget_start_reverse_tunnel</a>,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a172fa9cf2ce196c9846a3e47ea9036b4">remmina_protocol_widget_start_xport_tunnel</a>,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget_set_display</a>,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a1cae52cad394f317c712eb4fd709d261">remmina_protocol_widget_signal_connection_closed</a>,</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a05b5edfc3d3d0dcff1745d1d35aaca5c">remmina_protocol_widget_signal_connection_opened</a>,</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa88afa1e3f04974974a8be324b0a930e">remmina_protocol_widget_update_align</a>,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget_lock_dynres</a>,</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2551dd6f53480609596d2695040fba5d">remmina_protocol_widget_unlock_dynres</a>,</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9acf045c5a3eec5b7f748678dee0d3ee">remmina_protocol_widget_desktop_resize</a>,</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aebc7c7d34c470081a52aa35d998ce868">remmina_protocol_widget_panel_auth</a>,</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget_panel_new_certificate</a>,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#acf75fd4bac28a3d53da064b2905f23c1">remmina_protocol_widget_panel_changed_certificate</a>,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a96159bd8e9d70c74967e666e2f188df0">remmina_protocol_widget_get_username</a>,</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget_get_password</a>,</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget_get_domain</a>,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget_get_savepassword</a>,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget_panel_authx509</a>,</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget_get_cacert</a>,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget_get_cacrl</a>,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget_get_clientcert</a>,</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a08d312825fc0de9f9286279d99f763a1">remmina_protocol_widget_get_clientkey</a>,</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget_save_cred</a>,</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget_panel_show_listen</a>,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a7ed85f4ea19e0660dbf46f4f3dc4b895">remmina_protocol_widget_panel_show_retry</a>,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget_panel_show</a>,</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget_panel_hide</a>,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a12eddf3428a53201ee0a2ec422d2fa4a">remmina_protocol_widget_ssh_exec</a>,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a66263e6e7da79357ceb80d32b191d9f2">remmina_protocol_widget_chat_open</a>,</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a4a3a9ba7422fc302b0b412ac771c9953">remmina_protocol_widget_chat_close</a>,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget_chat_receive</a>,</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget_send_keys_signals</a>,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="remmina__file__manager_8c.html#aa65bc30beb59d607ba430d966e7e27f5">remmina_file_get_datadir</a>,</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a>,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>,</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="remmina__file_8c.html#ad514c2523ff0c919ddf535e3dbad9f3a">remmina_file_get_secret</a>,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>,</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="remmina__file_8c.html#a4e31f91e2398f16844f58c1cf13582da">remmina_file_get_double</a>,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="remmina__file_8c.html#a503e53fe49430a5ed310c342c946c014">remmina_file_unsave_passwords</a>,</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="remmina__pref_8c.html#a4fbb2aff07d1fef416352d8b80d79e02">remmina_pref_set_value</a>,</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="remmina__pref_8c.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref_get_value</a>,</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="remmina__pref_8c.html#a37cd589f00c94cb28eabb1bce4646d0b">remmina_pref_get_scale_quality</a>,</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="remmina__pref_8c.html#a6982152fd0492586819ce1760a853e99">remmina_pref_get_sshtunnel_port</a>,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="remmina__pref_8c.html#a12e52ee4ab89912280605e36ee069267">remmina_pref_get_ssh_loglevel</a>,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="remmina__pref_8c.html#a98b783e4c5c1dae695fe554f52f94a23">remmina_pref_get_ssh_parseconfig</a>,</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="remmina__pref_8c.html#aa263ec4481bcac099b7a294fe42179b9">remmina_pref_keymap_get_table</a>,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="remmina__pref_8c.html#aaac087c000b0863a296f2739f6344af8">remmina_pref_keymap_get_keyval</a>,</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a>,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a>,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a>,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a>,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a>,</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a>,</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a>,</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>,</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_open_from_file_full</a>,</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="remmina__public_8c.html#a4b8a7b85d58148cf856ea71b1d9f22c1">remmina_public_open_unix_sock</a>,</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a>,</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="remmina__masterthread__exec_8c.html#a3a52e863a3a3da6da6bb5d36c13b7ff4">remmina_masterthread_exec_is_main_thread</a>,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a1ef27b953decb0c707ec9a18da47a38f">remmina_gtksocket_available</a>,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab4c6435ef92e34a94270069ce1861907">remmina_protocol_widget_get_profile_remote_width</a>,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget_get_profile_remote_height</a>,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget_get_name</a>,</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a>,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a>,</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a41b62f211a8a8e960bc80aa1ba6b0380">remmina_protocol_widget_set_width</a>,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aadd106cec729a80405c6097e4c662044">remmina_protocol_widget_set_height</a>,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget_get_current_scale_mode</a>,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a>,</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a>,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget_set_error</a>,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget_has_error</a>,</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2067c19b160eb43bddda6c6c6e8d6045">remmina_protocol_widget_gtkviewport</a>,</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget_is_closed</a>,</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget_get_file</a>,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aebc7c7d34c470081a52aa35d998ce868">remmina_protocol_widget_panel_auth</a>,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget_register_hostkey</a>,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9d55210413d6a313478f81cf76ecf1b7">remmina_protocol_widget_start_direct_tunnel</a>,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget_start_reverse_tunnel</a>,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget_send_keys_signals</a>,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget_chat_receive</a>,</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a8ef0523afadadc9984d53fb02ecc01ad">remmina_protocol_widget_panel_hide</a>,</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a66263e6e7da79357ceb80d32b191d9f2">remmina_protocol_widget_chat_open</a>,</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a12eddf3428a53201ee0a2ec422d2fa4a">remmina_protocol_widget_ssh_exec</a>,</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget_panel_show</a>,</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a7ed85f4ea19e0660dbf46f4f3dc4b895">remmina_protocol_widget_panel_show_retry</a>,</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a172fa9cf2ce196c9846a3e47ea9036b4">remmina_protocol_widget_start_xport_tunnel</a>,</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget_set_display</a>,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a1cae52cad394f317c712eb4fd709d261">remmina_protocol_widget_signal_connection_closed</a>,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a05b5edfc3d3d0dcff1745d1d35aaca5c">remmina_protocol_widget_signal_connection_opened</a>,</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa88afa1e3f04974974a8be324b0a930e">remmina_protocol_widget_update_align</a>,</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a2551dd6f53480609596d2695040fba5d">remmina_protocol_widget_unlock_dynres</a>,</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9acf045c5a3eec5b7f748678dee0d3ee">remmina_protocol_widget_desktop_resize</a>,</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a262d75d6b535bd8c623e607805db4084">remmina_protocol_widget_panel_new_certificate</a>,</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#acf75fd4bac28a3d53da064b2905f23c1">remmina_protocol_widget_panel_changed_certificate</a>,</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a96159bd8e9d70c74967e666e2f188df0">remmina_protocol_widget_get_username</a>,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a3fc52d61f77327534286f57e563e0923">remmina_protocol_widget_get_password</a>,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget_get_domain</a>,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget_get_savepassword</a>,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget_panel_authx509</a>,</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget_get_cacert</a>,</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget_get_cacrl</a>,</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget_get_clientcert</a>,</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a08d312825fc0de9f9286279d99f763a1">remmina_protocol_widget_get_clientkey</a>,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#ab863cc1442a992adfa323bc77ab88504">remmina_protocol_widget_save_cred</a>,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget_panel_show_listen</a>,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_open_from_file_full</a>,</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="remmina__main_8c.html#ab2a1a54320992fb796850ffbd6a63589">remmina_main_show_dialog</a>,</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="remmina__main_8c.html#a7740488de65c0e642895cc9dfba07b6e">remmina_main_get_window</a>,</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;};</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a06a7e80f6a756ec12b2ac12ea3d5f206"> 313</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="remmina__plugin__manager_8c.html#a06a7e80f6a756ec12b2ac12ea3d5f206">get_filename_ext</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* last = strrchr(filename, <span class="charliteral">&#39;/&#39;</span>);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *dot = strrchr(last, <span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">if</span>(!dot || dot == filename) <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> dot + 1;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;}</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#ac90d2ffe3909722ca3daedac28da76e5"> 320</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina__plugin__manager_8c.html#ac90d2ffe3909722ca3daedac28da76e5">compare_secret_plugin_init_order</a>(gconstpointer a, gconstpointer b)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;{</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *sa, *sb;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; sa = (<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>*)a;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; sb = (<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>*)b;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (sa-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">init_order</a> &gt; sb-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">init_order</a>)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sa-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">init_order</a> &lt; sb-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">init_order</a>)</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;}</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a92c2264598a43702594535cebbf4d8cd"> 334</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#a9df07091ff7d32bcde595a6d3a3598f5">remmina_plugin_manager_init</a>()</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;{</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; GDir *dir;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">const</span> gchar *name, *ptr;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; gchar *fullpath;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *sp;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordtype">int</span> i, j;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; GSList *secret_plugins;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; GSList *sple;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; GPtrArray *alternative_language_plugins;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a> = g_ptr_array_new();</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; alternative_language_plugins = g_ptr_array_new();</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span> (!g_module_supported()) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; g_print(<span class="stringliteral">&quot;Dynamic loading of plugins is not supported on this platform!\n&quot;</span>);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; g_print(<span class="stringliteral">&quot;Load modules from %s\n&quot;</span>, REMMINA_RUNTIME_PLUGINDIR);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; dir = g_dir_open(REMMINA_RUNTIME_PLUGINDIR, 0, NULL);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span> (dir == NULL)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">while</span> ((name = g_dir_read_name(dir)) != NULL) {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span> ((ptr = strrchr(name, <span class="charliteral">&#39;.&#39;</span>)) == NULL)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; ptr++;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; fullpath = g_strdup_printf(REMMINA_RUNTIME_PLUGINDIR <span class="stringliteral">&quot;/%s&quot;</span>, name);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__plugin__manager_8c.html#a1a5e6eeb6e116b5768d5e0c02544149d">remmina_plugin_manager_loader_supported</a>(ptr)) {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; g_ptr_array_add(alternative_language_plugins, g_strdup_printf(REMMINA_RUNTIME_PLUGINDIR <span class="stringliteral">&quot;/%s&quot;</span>, name));</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; g_free(fullpath);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="remmina__plugin__native_8c.html#ae60c5371a41a83ef94c6a2b3dc8c9520">remmina_plugin_native_load</a>(&amp;remmina_plugin_manager_service, fullpath);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; g_free(fullpath);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; g_dir_close(dir);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">while</span> (alternative_language_plugins-&gt;len &gt; 0) {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; gboolean has_loaded = FALSE;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; gchar* name = (gchar*)g_ptr_array_remove_index(alternative_language_plugins, 0);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">const</span> gchar* ext = <a class="code" href="remmina__plugin__manager_8c.html#a06a7e80f6a756ec12b2ac12ea3d5f206">get_filename_ext</a>(name);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len &amp;&amp; !has_loaded; j++) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; plugin = (<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, j);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa93a45ba624f83d17a6d8619933a54b3e">REMMINA_PLUGIN_TYPE_LANGUAGE_WRAPPER</a>) {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="struct___remmina_language_wrapper_plugin.html">RemminaLanguageWrapperPlugin</a>* wrapper_plugin = (<a class="code" href="struct___remmina_language_wrapper_plugin.html">RemminaLanguageWrapperPlugin</a>*)plugin;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> gchar** supported_extention = wrapper_plugin-&gt;<a class="code" href="struct___remmina_language_wrapper_plugin.html#aea49b9e057254020e13f615331ef239b">supported_extentions</a>;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">while</span> (*supported_extention) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (g_str_equal(*supported_extention, ext)) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; has_loaded = wrapper_plugin-&gt;<a class="code" href="struct___remmina_language_wrapper_plugin.html#a1270e29b6e988d6b320ef3f0465b6272">load</a>(wrapper_plugin, name);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (has_loaded) {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; supported_extention++;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span> (has_loaded) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">if</span> (!has_loaded) {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; g_print(<span class="stringliteral">&quot;%s: Skip unsupported file type &#39;%s&#39;\n&quot;</span>, name, ext);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; g_free(name);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">/* Now all secret plugins needs to initialize, following their init_order.</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment"> * The 1st plugin which will initialize correctly will be</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="comment"> * the default remmina_secret_plugin */</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span> (remmina_secret_plugin)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; g_print(<span class="stringliteral">&quot;Internal ERROR: remmina_secret_plugin must be null here\n&quot;</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; secret_plugins = NULL;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; plugin = (<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa0d17e841a53921a7a6156f5d30e9f09c">REMMINA_PLUGIN_TYPE_SECRET</a>) {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; secret_plugins = g_slist_insert_sorted(secret_plugins, (gpointer)plugin, <a class="code" href="remmina__plugin__manager_8c.html#ac90d2ffe3909722ca3daedac28da76e5">compare_secret_plugin_init_order</a>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; sple = secret_plugins;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">while</span>(sple != NULL) {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; sp = (<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>*)sple-&gt;data;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; if (sp-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a6c664274cd540fea91013d298d1ef031">init</a>(sp)) {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; g_print(<span class="stringliteral">&quot;The %s secret plugin has been initialized and it will be your default secret plugin\n&quot;</span>,</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; sp-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a197b28d8b71ccb0c91ce8bf27690968a">name</a>);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; remmina_secret_plugin = sp;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; sple = sple-&gt;next;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; g_slist_free(secret_plugins);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; g_ptr_array_free(alternative_language_plugins, TRUE);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;}</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a1a5e6eeb6e116b5768d5e0c02544149d"> 436</a></span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8c.html#a1a5e6eeb6e116b5768d5e0c02544149d">remmina_plugin_manager_loader_supported</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filetype) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> g_str_equal(G_MODULE_SUFFIX, filetype);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;}</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a3872c8656a8a3d5147bcc603471c1932"> 441</a></span>&#160;<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>* <a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> type, <span class="keyword">const</span> gchar *name)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; gint i;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; plugin = (<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == type &amp;&amp; g_strcmp0(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>, name) == 0) {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">return</span> plugin;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;}</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#af60b8edfa50563ae4c7593efc3deed55"> 456</a></span>&#160;<span class="keyword">const</span> gchar *<a class="code" href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(<span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a>* setting)</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;{</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a> == NULL) {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;server&quot;</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>)</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;password&quot;</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;resolution&quot;</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">if</span> (setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a> == <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a>)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;assistance_mode&quot;</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;missing_setting_name_into_plugin_RemminaProtocolSetting&quot;</span>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">return</span> setting-&gt;<a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;}</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a13f13a6a4280268656f258cb5aeff031"> 472</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> type, <a class="code" href="remmina__plugin__manager_8h.html#a68d4ed61b9d039dd06ba4252a8971c18">RemminaPluginFunc</a> func, gpointer data)</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;{</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; gint i;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; plugin = (<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a> == type) {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; func((gchar*)plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>, plugin, data);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; }</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;}</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="comment">/* A copy of remmina_plugin_manager_show and remmina_plugin_manager_show_for_each</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="comment"> * This is because we want to print the list of plugins, and their versions, to the standard output</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="comment"> * with the remmina command line option --full-version instead of using the plugins widget</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="comment"> ** @todo Investigate to use only GListStore and than pass the elements to be shown to 2 separate</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="comment"> * functions</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="comment"> * WARNING: GListStore is supported only from GLib 2.44 */</span></div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07"> 492</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07">remmina_plugin_manager_show_for_each_stdout</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; g_print(<span class="stringliteral">&quot;%-20s%-16s%-64s%-10s\n&quot;</span>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>,</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; _(<a class="code" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10">remmina_plugin_type_name</a>[plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a>]),</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; g_dgettext(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">domain</a>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a4ac66b7ebefb9bd8167737eb1af83cde">description</a>),</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; plugin-&gt;<a class="code" href="struct___remmina_plugin.html#aecdad5d7ff5bdfbf0ce80b4b73f65099">version</a>);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;}</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#afe0881986b2a64bfb5460981dadcf28d"> 503</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a>()</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;{</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; g_print(<span class="stringliteral">&quot;%-20s%-16s%-64s%-10s\n&quot;</span>, <span class="stringliteral">&quot;NAME&quot;</span>, <span class="stringliteral">&quot;TYPE&quot;</span>, <span class="stringliteral">&quot;DESCRIPTION&quot;</span>, <span class="stringliteral">&quot;PLUGIN AND LIBRARY VERSION&quot;</span>);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; g_ptr_array_foreach(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, (GFunc)<a class="code" href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07">remmina_plugin_manager_show_for_each_stdout</a>, NULL);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;}</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c"> 510</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c">remmina_plugin_manager_show_for_each</a>(<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin, GtkListStore *store)</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; GtkTreeIter iter;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; gtk_list_store_append(store, &amp;iter);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; gtk_list_store_set(store, &amp;iter, 0, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">name</a>, 1, _(<a class="code" href="remmina__plugin__manager_8c.html#a719ce18a83ed7ecb3388f179a8590c10">remmina_plugin_type_name</a>[plugin-&gt;<a class="code" href="struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3">type</a>]), 2,</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; g_dgettext(plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">domain</a>, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#a4ac66b7ebefb9bd8167737eb1af83cde">description</a>), 3, plugin-&gt;<a class="code" href="struct___remmina_plugin.html#aecdad5d7ff5bdfbf0ce80b4b73f65099">version</a>, -1);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;}</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#aedec4e9cf18d99a559aa51065c2bc276"> 521</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8c.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a>(GtkWindow *parent)</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;{</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; GtkWidget *dialog;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; GtkWidget *scrolledwindow;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; GtkWidget *tree;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; GtkCellRenderer *renderer;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; GtkTreeViewColumn *column;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; GtkListStore *store;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; dialog = gtk_dialog_new_with_buttons(_(<span class="stringliteral">&quot;Plugins&quot;</span>), parent, GTK_DIALOG_MODAL, _(<span class="stringliteral">&quot;_OK&quot;</span>), GTK_RESPONSE_ACCEPT, NULL);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; g_signal_connect(G_OBJECT(dialog), <span class="stringliteral">&quot;response&quot;</span>, G_CALLBACK(gtk_widget_destroy), dialog);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; gtk_window_set_default_size(GTK_WINDOW(dialog), 500, 350);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; scrolledwindow = gtk_scrolled_window_new(NULL, NULL);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; gtk_widget_show(scrolledwindow);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), scrolledwindow, TRUE, TRUE, 0);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; tree = gtk_tree_view_new();</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; gtk_container_add(GTK_CONTAINER(scrolledwindow), tree);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; gtk_widget_show(tree);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; store = gtk_list_store_new(4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; g_ptr_array_foreach(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, (GFunc)<a class="code" href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c">remmina_plugin_manager_show_for_each</a>, store);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store));</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; renderer = gtk_cell_renderer_text_new();</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; column = gtk_tree_view_column_new_with_attributes(_(<span class="stringliteral">&quot;Name&quot;</span>), renderer, <span class="stringliteral">&quot;text&quot;</span>, 0, NULL);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; gtk_tree_view_column_set_resizable(column, TRUE);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; gtk_tree_view_column_set_sort_column_id(column, 0);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; renderer = gtk_cell_renderer_text_new();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; column = gtk_tree_view_column_new_with_attributes(_(<span class="stringliteral">&quot;Type&quot;</span>), renderer, <span class="stringliteral">&quot;text&quot;</span>, 1, NULL);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; gtk_tree_view_column_set_resizable(column, TRUE);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; gtk_tree_view_column_set_sort_column_id(column, 1);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; renderer = gtk_cell_renderer_text_new();</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; column = gtk_tree_view_column_new_with_attributes(_(<span class="stringliteral">&quot;Description&quot;</span>), renderer, <span class="stringliteral">&quot;text&quot;</span>, 2, NULL);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; gtk_tree_view_column_set_resizable(column, TRUE);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; gtk_tree_view_column_set_sort_column_id(column, 2);</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; renderer = gtk_cell_renderer_text_new();</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; column = gtk_tree_view_column_new_with_attributes(_(<span class="stringliteral">&quot;Version&quot;</span>), renderer, <span class="stringliteral">&quot;text&quot;</span>, 3, NULL);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; gtk_tree_view_column_set_resizable(column, TRUE);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; gtk_tree_view_column_set_sort_column_id(column, 3);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; gtk_widget_show(dialog);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a859348bddc9069f06195915692b65076"> 575</a></span>&#160;<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a>* <a class="code" href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a>(<span class="keyword">const</span> gchar *file)</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;{</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a> *plugin;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; gint i;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; plugin = (<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_file_plugin.html#a3ff85e56bf902817630aafea67e3e494">type</a> != <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac">REMMINA_PLUGIN_TYPE_FILE</a>)</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_file_plugin.html#a5cbc050a2735ee5d896a110a25e91ca9">import_test_func</a>(plugin, file)) {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">return</span> plugin;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; }</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;}</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#afce14b101da527ada9b44a4503e91e07"> 594</a></span>&#160;<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a>* <a class="code" href="remmina__plugin__manager_8c.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;{</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a> *plugin;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; gint i;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>-&gt;len; i++) {</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; plugin = (<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a>*)g_ptr_array_index(<a class="code" href="remmina__plugin__manager_8c.html#a65313d34bb7e940f388e45818fd5889e">remmina_plugin_table</a>, i);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_file_plugin.html#a3ff85e56bf902817630aafea67e3e494">type</a> != <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa9af260da7aa2ad0ee90e8dae5439dbac">REMMINA_PLUGIN_TYPE_FILE</a>)</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="struct___remmina_file_plugin.html#a0a3d5cd1b41d206d01ba52ab5ea554b6">export_test_func</a>(plugin, remminafile)) {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">return</span> plugin;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; }</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; }</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;}</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#ad380a98f6624aa8c830015c8b428b7b4"> 611</a></span>&#160;<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a>* <a class="code" href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;{</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__plugin__manager_8c.html#a5e79d6abd0b12c1ed2bb33988e41857e">remmina_secret_plugin</a>;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;}</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a1668951fd7067f2c405e001836855080"> 617</a></span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8c.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> ptype, <span class="keyword">const</span> gchar* name, <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a> ftype)</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;{</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a>* plugin;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; plugin = (<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a>*)<a class="code" href="remmina__plugin__manager_8c.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(ptype, name);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">if</span> (plugin == NULL) {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; }</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">for</span> (feature = plugin-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#afa1a3a21c504b386cecfb42d1c9e6bff">features</a>; feature &amp;&amp; feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a>; feature++) {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a> == ftype)</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;}</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#aef243c58b9e8c778232d5acb32c7729b"> 636</a></span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a>(<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *pp, <span class="keyword">const</span> <span class="keywordtype">char</span> *setting)</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;{</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; GHashTable *pht;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a> == NULL)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">if</span> (!(pht = g_hash_table_lookup(<a class="code" href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a>, pp-&gt;<a class="code" href="struct___remmina_protocol_plugin.html#a6e04143450eeb71e3d0b2c14983860a4">name</a>)))</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">if</span> (!g_hash_table_lookup(pht, setting))</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;}</div><div class="ttc" id="remmina__protocol__widget_8c_html_a25bcb2ae99449624fed6f770218e3d25"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a></div><div class="ttdeci">gboolean remmina_protocol_widget_get_expand(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01425">remmina_protocol_widget.c:1425</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a843c2455a10c9382aee454515f9e7f8b"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a843c2455a10c9382aee454515f9e7f8b">remmina_protocol_widget_panel_show</a></div><div class="ttdeci">void remmina_protocol_widget_panel_show(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01995">remmina_protocol_widget.c:1995</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a5e79d6abd0b12c1ed2bb33988e41857e"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a5e79d6abd0b12c1ed2bb33988e41857e">remmina_secret_plugin</a></div><div class="ttdeci">static RemminaSecretPlugin * remmina_secret_plugin</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00070">remmina_plugin_manager.c:70</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_af60b8edfa50563ae4c7593efc3deed55"><div class="ttname"><a href="remmina__plugin__manager_8c.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a></div><div class="ttdeci">const gchar * remmina_plugin_manager_get_canonical_setting_name(const RemminaProtocolSetting *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00456">remmina_plugin_manager.c:456</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a95088334da86faf9520383629fff48af"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a95088334da86faf9520383629fff48af">remmina_protocol_widget_set_error</a></div><div class="ttdeci">void remmina_protocol_widget_set_error(RemminaProtocolWidget *gp, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01450">remmina_protocol_widget.c:1450</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html"><div class="ttname"><a href="struct___remmina_plugin.html">_RemminaPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00056">plugin.h:56</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_aef243c58b9e8c778232d5acb32c7729b"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a></div><div class="ttdeci">gboolean remmina_plugin_manager_is_encrypted_setting(RemminaProtocolPlugin *pp, const char *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00634">remmina_plugin_manager.c:634</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_aef243c58b9e8c778232d5acb32c7729b"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a></div><div class="ttdeci">gboolean remmina_plugin_manager_is_encrypted_setting(RemminaProtocolPlugin *pp, const char *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00636">remmina_plugin_manager.c:636</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a37cd589f00c94cb28eabb1bce4646d0b"><div class="ttname"><a href="remmina__pref_8c.html#a37cd589f00c94cb28eabb1bce4646d0b">remmina_pref_get_scale_quality</a></div><div class="ttdeci">gint remmina_pref_get_scale_quality(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01071">remmina_pref.c:1071</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html"><div class="ttname"><a href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a8eb1b213d9d08c6ad13683ce05f4355e"><div class="ttname"><a href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a></div><div class="ttdeci">const gchar * remmina_file_get_string(RemminaFile *remminafile, const gchar *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00516">remmina_file.c:516</a></div></div>
@@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__protocol__widget_8c_html_a13e14fa81f7ca52942415a7caf5b932c"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a13e14fa81f7ca52942415a7caf5b932c">remmina_protocol_widget_register_hostkey</a></div><div class="ttdeci">void remmina_protocol_widget_register_hostkey(RemminaProtocolWidget *gp, GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00857">remmina_protocol_widget.c:857</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aa6d9f2f558fcd9e7fe58eefcde1c3c5c"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aa6d9f2f558fcd9e7fe58eefcde1c3c5c">remmina_protocol_widget_start_reverse_tunnel</a></div><div class="ttdeci">gboolean remmina_protocol_widget_start_reverse_tunnel(RemminaProtocolWidget *gp, gint local_port)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01164">remmina_protocol_widget.c:1164</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_a68d4ed61b9d039dd06ba4252a8971c18"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a68d4ed61b9d039dd06ba4252a8971c18">RemminaPluginFunc</a></div><div class="ttdeci">G_BEGIN_DECLS typedef gboolean(* RemminaPluginFunc)(gchar *name, RemminaPlugin *plugin, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8h_source.html#l00043">remmina_plugin_manager.h:43</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00470">remmina_plugin_manager.c:470</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00472">remmina_plugin_manager.c:472</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a7c15fa81642c52ef382e1dbe34ffb6ac"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget_get_domain</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_domain(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01842">remmina_protocol_widget.c:1842</a></div></div>
<div class="ttc" id="rcw_8c_html_ad3c2fe67b137c757bd21b79ad5dcc5ff"><div class="ttname"><a href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_open_from_file_full</a></div><div class="ttdeci">GtkWidget * rcw_open_from_file_full(RemminaFile *remminafile, GCallback disconnect_cb, gpointer data, guint *handler)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04499">rcw.c:4499</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_ae3c9c9853eb5bedbfeadbfac1d495b95"><div class="ttname"><a href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a></div><div class="ttdeci">void remmina_widget_pool_register(GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00056">remmina_widget_pool.c:56</a></div></div>
@@ -134,15 +134,16 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__widget__pool_8h_html"><div class="ttname"><a href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a0155c6684591e0dd843c7145792fef09"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">_RemminaSecretPlugin::init_order</a></div><div class="ttdeci">int init_order</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00141">plugin.h:141</a></div></div>
<div class="ttc" id="remmina__file_8c_html_ad514c2523ff0c919ddf535e3dbad9f3a"><div class="ttname"><a href="remmina__file_8c.html#ad514c2523ff0c919ddf535e3dbad9f3a">remmina_file_get_secret</a></div><div class="ttdeci">gchar * remmina_file_get_secret(RemminaFile *remminafile, const gchar *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00551">remmina_file.c:551</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a12e52ee4ab89912280605e36ee069267"><div class="ttname"><a href="remmina__pref_8c.html#a12e52ee4ab89912280605e36ee069267">remmina_pref_get_ssh_loglevel</a></div><div class="ttdeci">gint remmina_pref_get_ssh_loglevel(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01080">remmina_pref.c:1080</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_afa1a3a21c504b386cecfb42d1c9e6bff"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#afa1a3a21c504b386cecfb42d1c9e6bff">_RemminaProtocolPlugin::features</a></div><div class="ttdeci">const RemminaProtocolFeature * features</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00077">plugin.h:77</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_afce14b101da527ada9b44a4503e91e07"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_export_file_handler(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00592">remmina_plugin_manager.c:592</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_afce14b101da527ada9b44a4503e91e07"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_export_file_handler(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00594">remmina_plugin_manager.c:594</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html_a024d3e6d752dd29828b31c60c8c7c201"><div class="ttname"><a href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">_RemminaPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00060">plugin.h:60</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00286">remmina_log.c:286</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00573">remmina_plugin_manager.c:573</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00609">remmina_plugin_manager.c:609</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00575">remmina_plugin_manager.c:575</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00611">remmina_plugin_manager.c:611</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a9473da27fd10eb46ef8360f9ad4be86d"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget_get_cacert</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_cacert(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01854">remmina_protocol_widget.c:1854</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a36e01bda95825ee6b5f164f52af7c457"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget_lock_dynres</a></div><div class="ttdeci">void remmina_protocol_widget_lock_dynres(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00438">remmina_protocol_widget.c:438</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ae609b351fff17c235251b0ba7c480da5"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a></div><div class="ttdeci">gint remmina_protocol_widget_get_height(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01401">remmina_protocol_widget.c:1401</a></div></div>
@@ -160,14 +161,14 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__log_8c_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00259">remmina_log.c:259</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a15368afcbeb770f8cf25941bd49e7b54"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget_set_display</a></div><div class="ttdeci">void remmina_protocol_widget_set_display(RemminaProtocolWidget *gp, gint display)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01347">remmina_protocol_widget.c:1347</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a41b62f211a8a8e960bc80aa1ba6b0380"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a41b62f211a8a8e960bc80aa1ba6b0380">remmina_protocol_widget_set_width</a></div><div class="ttdeci">void remmina_protocol_widget_set_width(RemminaProtocolWidget *gp, gint width)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01395">remmina_protocol_widget.c:1395</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a634fadd9871f76bc60c3da0aa95e719c"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c">remmina_plugin_manager_show_for_each</a></div><div class="ttdeci">static gboolean remmina_plugin_manager_show_for_each(RemminaPlugin *plugin, GtkListStore *store)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00508">remmina_plugin_manager.c:508</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a634fadd9871f76bc60c3da0aa95e719c"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c">remmina_plugin_manager_show_for_each</a></div><div class="ttdeci">static gboolean remmina_plugin_manager_show_for_each(RemminaPlugin *plugin, GtkListStore *store)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00510">remmina_plugin_manager.c:510</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a6bcbf4cc3a58ed4ee9f087b4270d8fd6"><div class="ttname"><a href="remmina__pref_8c.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref_get_value</a></div><div class="ttdeci">gchar * remmina_pref_get_value(const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01144">remmina_pref.c:1144</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html"><div class="ttname"><a href="struct___remmina_secret_plugin.html">_RemminaSecretPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00135">plugin.h:135</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a98b783e4c5c1dae695fe554f52f94a23"><div class="ttname"><a href="remmina__pref_8c.html#a98b783e4c5c1dae695fe554f52f94a23">remmina_pref_get_ssh_parseconfig</a></div><div class="ttdeci">gboolean remmina_pref_get_ssh_parseconfig(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01086">remmina_pref.c:1086</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ab224a0f643d291f86ede54e373bd0a6f"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget_get_name</a></div><div class="ttdeci">const gchar * remmina_protocol_widget_get_name(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01383">remmina_protocol_widget.c:1383</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a06a7e80f6a756ec12b2ac12ea3d5f206"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a06a7e80f6a756ec12b2ac12ea3d5f206">get_filename_ext</a></div><div class="ttdeci">const char * get_filename_ext(const char *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00313">remmina_plugin_manager.c:313</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a278e13b53a4fdb65498e00e908edb98d"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget_panel_show_listen</a></div><div class="ttdeci">void remmina_protocol_widget_panel_show_listen(RemminaProtocolWidget *gp, gint port)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01944">remmina_protocol_widget.c:1944</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_aedec4e9cf18d99a559aa51065c2bc276"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a></div><div class="ttdeci">void remmina_plugin_manager_show(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00519">remmina_plugin_manager.c:519</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_aedec4e9cf18d99a559aa51065c2bc276"><div class="ttname"><a href="remmina__plugin__manager_8c.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a></div><div class="ttdeci">void remmina_plugin_manager_show(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00521">remmina_plugin_manager.c:521</a></div></div>
<div class="ttc" id="remmina__public_8h_html"><div class="ttname"><a href="remmina__public_8h.html">remmina_public.h</a></div></div>
<div class="ttc" id="remmina__masterthread__exec_8c_html_a3a52e863a3a3da6da6bb5d36c13b7ff4"><div class="ttname"><a href="remmina__masterthread__exec_8c.html#a3a52e863a3a3da6da6bb5d36c13b7ff4">remmina_masterthread_exec_is_main_thread</a></div><div class="ttdeci">gboolean remmina_masterthread_exec_is_main_thread()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__masterthread__exec_8c_source.html#l00147">remmina_masterthread_exec.c:147</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_aa263ec4481bcac099b7a294fe42179b9"><div class="ttname"><a href="remmina__pref_8c.html#aa263ec4481bcac099b7a294fe42179b9">remmina_pref_keymap_get_table</a></div><div class="ttdeci">guint * remmina_pref_keymap_get_table(const gchar *keymap)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01019">remmina_pref.c:1019</a></div></div>
@@ -181,7 +182,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="struct___remmina_file_plugin_html_a0a3d5cd1b41d206d01ba52ab5ea554b6"><div class="ttname"><a href="struct___remmina_file_plugin.html#a0a3d5cd1b41d206d01ba52ab5ea554b6">_RemminaFilePlugin::export_test_func</a></div><div class="ttdeci">gboolean(* export_test_func)(struct _RemminaFilePlugin *instance, RemminaFile *file)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00109">plugin.h:109</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a197b28d8b71ccb0c91ce8bf27690968a"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a197b28d8b71ccb0c91ce8bf27690968a">_RemminaSecretPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00137">plugin.h:137</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_acf75fd4bac28a3d53da064b2905f23c1"><div class="ttname"><a href="remmina__protocol__widget_8c.html#acf75fd4bac28a3d53da064b2905f23c1">remmina_protocol_widget_panel_changed_certificate</a></div><div class="ttdeci">gint remmina_protocol_widget_panel_changed_certificate(RemminaProtocolWidget *gp, const gchar *subject, const gchar *issuer, const gchar *new_fingerprint, const gchar *old_fingerprint)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01796">remmina_protocol_widget.c:1796</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a1668951fd7067f2c405e001836855080"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a></div><div class="ttdeci">gboolean remmina_plugin_manager_query_feature_by_type(RemminaPluginType ptype, const gchar *name, RemminaProtocolFeatureType ftype)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00615">remmina_plugin_manager.c:615</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a1668951fd7067f2c405e001836855080"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a></div><div class="ttdeci">gboolean remmina_plugin_manager_query_feature_by_type(RemminaPluginType ptype, const gchar *name, RemminaProtocolFeatureType ftype)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00617">remmina_plugin_manager.c:617</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ab9632c73b32531b7bea976e10204670b"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget_get_clientcert</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_clientcert(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01872">remmina_protocol_widget.c:1872</a></div></div>
<div class="ttc" id="remmina__file_8c_html_af153b0d289ac93f6ecdaa15d5f3b9b8c"><div class="ttname"><a href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a></div><div class="ttdeci">void remmina_file_set_int(RemminaFile *remminafile, const gchar *setting, gint value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00585">remmina_file.c:585</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a2551dd6f53480609596d2695040fba5d"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a2551dd6f53480609596d2695040fba5d">remmina_protocol_widget_unlock_dynres</a></div><div class="ttdeci">void remmina_protocol_widget_unlock_dynres(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00445">remmina_protocol_widget.c:445</a></div></div>
@@ -198,9 +199,9 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__log_8c_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00206">remmina_log.c:206</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a></div><div class="ttdeci">RemminaProtocolFeatureType</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00046">types.h:46</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aadd106cec729a80405c6097e4c662044"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aadd106cec729a80405c6097e4c662044">remmina_protocol_widget_set_height</a></div><div class="ttdeci">void remmina_protocol_widget_set_height(RemminaProtocolWidget *gp, gint height)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01407">remmina_protocol_widget.c:1407</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ac3e5a7f14aef4adb2e57d35e9c180b3b"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget_emit_signal</a></div><div class="ttdeci">void remmina_protocol_widget_emit_signal(RemminaProtocolWidget *gp, const gchar *signal_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00748">remmina_protocol_widget.c:748</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00102">types.h:102</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a5e421ba636d34e21bba5ece463e98892"><div class="ttname"><a href="remmina__file_8c.html#a5e421ba636d34e21bba5ece463e98892">remmina_file_new</a></div><div class="ttdeci">RemminaFile * remmina_file_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00093">remmina_file.c:93</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_aaac087c000b0863a296f2739f6344af8"><div class="ttname"><a href="remmina__pref_8c.html#aaac087c000b0863a296f2739f6344af8">remmina_pref_keymap_get_keyval</a></div><div class="ttdeci">guint remmina_pref_keymap_get_keyval(const gchar *keymap, guint keyval)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01029">remmina_pref.c:1029</a></div></div>
@@ -226,7 +227,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__plugin__native_8h_html"><div class="ttname"><a href="remmina__plugin__native_8h.html">remmina_plugin_native.h</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a0b19dbe685e4465e7f06706270e120fa"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a></div><div class="ttdeci">void remmina_protocol_widget_set_expand(RemminaProtocolWidget *gp, gboolean expand)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01431">remmina_protocol_widget.c:1431</a></div></div>
<div class="ttc" id="remmina__log_8c_html_ac7848510c1fe1990c992e28cd31af9d8"><div class="ttname"><a href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a></div><div class="ttdeci">void remmina_log_printf(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00411">remmina_log.c:411</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a3fdc160c477f9f5e1d881c0c054d4b07"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07">remmina_plugin_manager_show_for_each_stdout</a></div><div class="ttdeci">static gboolean remmina_plugin_manager_show_for_each_stdout(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00490">remmina_plugin_manager.c:490</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a3fdc160c477f9f5e1d881c0c054d4b07"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07">remmina_plugin_manager_show_for_each_stdout</a></div><div class="ttdeci">static gboolean remmina_plugin_manager_show_for_each_stdout(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00492">remmina_plugin_manager.c:492</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a85ca1ca2d0bf9ef29e490c6f4527a954"><div class="ttname"><a href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a></div><div class="ttdeci">void remmina_file_set_string(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00469">remmina_file.c:469</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a9bcd0d356c7215dc0f791c9744360705"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget_send_keys_signals</a></div><div class="ttdeci">void remmina_protocol_widget_send_keys_signals(GtkWidget *widget, const guint *keyvals, int keyvals_length, GdkEventType action)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02102">remmina_protocol_widget.c:2102</a></div></div>
<div class="ttc" id="remmina__log_8c_html_aca8f826a273194e22f4467421af9b3aa"><div class="ttname"><a href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a></div><div class="ttdeci">void remmina_log_print(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00197">remmina_log.c:197</a></div></div>
@@ -238,7 +239,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__public_8c_html_adc8b77823386e00e610527d6b0b61149"><div class="ttname"><a href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a></div><div class="ttdeci">void remmina_public_get_server_port(const gchar *server, gint defaultport, gchar **host, gint *port)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00422">remmina_public.c:422</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa0d17e841a53921a7a6156f5d30e9f09c"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa0d17e841a53921a7a6156f5d30e9f09c">REMMINA_PLUGIN_TYPE_SECRET</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00052">plugin.h:52</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_ad4cb2d85f9cf76089a082122f2891fb8"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad4cb2d85f9cf76089a082122f2891fb8">remmina_plugin_manager_register_plugin</a></div><div class="ttdeci">static gboolean remmina_plugin_manager_register_plugin(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00139">remmina_plugin_manager.c:139</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_afe0881986b2a64bfb5460981dadcf28d"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a></div><div class="ttdeci">void remmina_plugin_manager_show_stdout()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00501">remmina_plugin_manager.c:501</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_afe0881986b2a64bfb5460981dadcf28d"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a></div><div class="ttdeci">void remmina_plugin_manager_show_stdout()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00503">remmina_plugin_manager.c:503</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a2506e80d482c34532d0e534856452069"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a2506e80d482c34532d0e534856452069">remmina_protocol_widget_get_file</a></div><div class="ttdeci">RemminaFile * remmina_protocol_widget_get_file(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01476">remmina_protocol_widget.c:1476</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a72f0dbafb41acc4a5834f5c0719e6046"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a72f0dbafb41acc4a5834f5c0719e6046">init_settings_cache</a></div><div class="ttdeci">static void init_settings_cache(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00087">remmina_plugin_manager.c:87</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
@@ -248,7 +249,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="struct___remmina_plugin_html_a3f09b29bb3b0c044780d56a8b1a51582"><div class="ttname"><a href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">_RemminaPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00058">plugin.h:58</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a96159bd8e9d70c74967e666e2f188df0"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a96159bd8e9d70c74967e666e2f188df0">remmina_protocol_widget_get_username</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_username(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01830">remmina_protocol_widget.c:1830</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00355">remmina_log.c:355</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/public/remmina__plugin__manager_8h.html b/public/remmina__plugin__manager_8h.html
index dd3487962..5dea43636 100644
--- a/public/remmina__plugin__manager_8h.html
+++ b/public/remmina__plugin__manager_8h.html
@@ -241,7 +241,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00470">470</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00472">472</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -315,7 +315,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00592">592</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00594">594</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -335,7 +335,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00573">573</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00575">575</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -385,7 +385,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00609">609</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00611">611</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -435,7 +435,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00634">634</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00636">636</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -491,7 +491,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00615">615</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00617">617</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -511,7 +511,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00519">519</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00521">521</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
@@ -530,7 +530,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00501">501</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__plugin__manager_8c_source.html#l00503">503</a> of file <a class="el" href="remmina__plugin__manager_8c_source.html">remmina_plugin_manager.c</a>.</p>
</div>
</div>
diff --git a/public/remmina__plugin__manager_8h_source.html b/public/remmina__plugin__manager_8h_source.html
index 4c3375a74..cb3c6cf74 100644
--- a/public/remmina__plugin__manager_8h_source.html
+++ b/public/remmina__plugin__manager_8h_source.html
@@ -87,31 +87,31 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8h_source.htm
</div><!--header-->
<div class="contents">
<a href="remmina__plugin__manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="plugin_8h.html">remmina/plugin.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#a68d4ed61b9d039dd06ba4252a8971c18"> 43</a></span>&#160;<span class="keyword">typedef</span> gboolean (*<a class="code" href="remmina__plugin__manager_8h.html#a68d4ed61b9d039dd06ba4252a8971c18">RemminaPluginFunc</a>)(gchar *name, <a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *plugin, gpointer data);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8h.html#a92c2264598a43702594535cebbf4d8cd">remmina_plugin_manager_init</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a> *<a class="code" href="remmina__plugin__manager_8h.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> type, <span class="keyword">const</span> gchar *name);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8h.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> ptype, <span class="keyword">const</span> gchar *name, <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a> ftype);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8h.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> type, <a class="code" href="remmina__plugin__manager_8h.html#a68d4ed61b9d039dd06ba4252a8971c18">RemminaPluginFunc</a> func, gpointer data);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8h.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a>(GtkWindow *parent);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8h.html#a0b8798c3d17b453bddad4b948e9b0d9a">remmina_plugin_manager_for_each_plugin_stdout</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a> type, <a class="code" href="remmina__plugin__manager_8h.html#a68d4ed61b9d039dd06ba4252a8971c18">RemminaPluginFunc</a> func, gpointer data);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8h.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a> *<a class="code" href="remmina__plugin__manager_8h.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a>(<span class="keyword">const</span> gchar *file);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<a class="code" href="struct___remmina_file_plugin.html">RemminaFilePlugin</a> *<a class="code" href="remmina__plugin__manager_8h.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *<a class="code" href="remmina__plugin__manager_8h.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">const</span> gchar *<a class="code" href="remmina__plugin__manager_8h.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a>(<span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> *setting);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8h.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a>(<a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> *pp, <span class="keyword">const</span> <span class="keywordtype">char</span> *setting);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8h.html#a1ef27b953decb0c707ec9a18da47a38f">remmina_gtksocket_available</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">extern</span> <a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> <a class="code" href="remmina__plugin__manager_8h.html#a3996819fdb2c833f3c64c2ad399e5f10">remmina_plugin_manager_service</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="remmina__plugin__manager_8h.html#ad1f54bd2495b4a74f9d0d23dda146f96"> 61</a></span>&#160;<span class="keyword">typedef</span> gboolean (*<a class="code" href="remmina__plugin__manager_8h.html#ad1f54bd2495b4a74f9d0d23dda146f96">RemminaPluginLoaderFunc</a>)(<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a>*, <span class="keyword">const</span> gchar* name);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_remmina_plugin_loader.html"> 63</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_remmina_plugin_loader.html#a56f300db088d387cc4de9dbcd4b8e96f"> 64</a></span>&#160; <span class="keywordtype">char</span>* <a class="code" href="struct_remmina_plugin_loader.html#a56f300db088d387cc4de9dbcd4b8e96f">filetype</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_remmina_plugin_loader.html#a89a0df31eaca09c7f3009d1100f3b078"> 65</a></span>&#160; <a class="code" href="remmina__plugin__manager_8h.html#ad1f54bd2495b4a74f9d0d23dda146f96">RemminaPluginLoaderFunc</a> <a class="code" href="struct_remmina_plugin_loader.html#a89a0df31eaca09c7f3009d1100f3b078">func</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;} <a class="code" href="struct_remmina_plugin_loader.html">RemminaPluginLoader</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;gboolean <a class="code" href="remmina__plugin__manager_8h.html#a1a5e6eeb6e116b5768d5e0c02544149d">remmina_plugin_manager_loader_supported</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filetype);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__plugin__manager_8h.html#a8b76c25d5cdebbe449b473ca02778105">remmina_plugin_manager_add_loader</a>(<span class="keywordtype">char</span> *filetype, <a class="code" href="remmina__plugin__manager_8h.html#ad1f54bd2495b4a74f9d0d23dda146f96">RemminaPluginLoaderFunc</a> func);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;G_END_DECLS</div><div class="ttc" id="struct___remmina_plugin_html"><div class="ttname"><a href="struct___remmina_plugin.html">_RemminaPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00056">plugin.h:56</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8h_html_afe0881986b2a64bfb5460981dadcf28d"><div class="ttname"><a href="remmina__plugin__manager_8h.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a></div><div class="ttdeci">void remmina_plugin_manager_show_stdout()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00501">remmina_plugin_manager.c:501</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8h_html_afe0881986b2a64bfb5460981dadcf28d"><div class="ttname"><a href="remmina__plugin__manager_8h.html#afe0881986b2a64bfb5460981dadcf28d">remmina_plugin_manager_show_stdout</a></div><div class="ttdeci">void remmina_plugin_manager_show_stdout()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00503">remmina_plugin_manager.c:503</a></div></div>
<div class="ttc" id="struct___remmina_file_plugin_html"><div class="ttname"><a href="struct___remmina_file_plugin.html">_RemminaFilePlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00100">plugin.h:100</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_a68d4ed61b9d039dd06ba4252a8971c18"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a68d4ed61b9d039dd06ba4252a8971c18">RemminaPluginFunc</a></div><div class="ttdeci">G_BEGIN_DECLS typedef gboolean(* RemminaPluginFunc)(gchar *name, RemminaPlugin *plugin, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8h_source.html#l00043">remmina_plugin_manager.h:43</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_a3872c8656a8a3d5147bcc603471c1932"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a3872c8656a8a3d5147bcc603471c1932">remmina_plugin_manager_get_plugin</a></div><div class="ttdeci">RemminaPlugin * remmina_plugin_manager_get_plugin(RemminaPluginType type, const gchar *name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00441">remmina_plugin_manager.c:441</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8h_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00470">remmina_plugin_manager.c:470</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8h_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00472">remmina_plugin_manager.c:472</a></div></div>
<div class="ttc" id="plugin_8h_html"><div class="ttname"><a href="plugin_8h.html">plugin.h</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_a3996819fdb2c833f3c64c2ad399e5f10"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a3996819fdb2c833f3c64c2ad399e5f10">remmina_plugin_manager_service</a></div><div class="ttdeci">RemminaPluginService remmina_plugin_manager_service</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00174">remmina_plugin_manager.c:174</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8h_html_afce14b101da527ada9b44a4503e91e07"><div class="ttname"><a href="remmina__plugin__manager_8h.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_export_file_handler(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00592">remmina_plugin_manager.c:592</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8h_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00573">remmina_plugin_manager.c:573</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8h_html_afce14b101da527ada9b44a4503e91e07"><div class="ttname"><a href="remmina__plugin__manager_8h.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_export_file_handler(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00594">remmina_plugin_manager.c:594</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8h_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00575">remmina_plugin_manager.c:575</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html"><div class="ttname"><a href="struct___remmina_protocol_plugin.html">_RemminaProtocolPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00065">plugin.h:65</a></div></div>
<div class="ttc" id="struct_remmina_plugin_loader_html_a89a0df31eaca09c7f3009d1100f3b078"><div class="ttname"><a href="struct_remmina_plugin_loader.html#a89a0df31eaca09c7f3009d1100f3b078">RemminaPluginLoader::func</a></div><div class="ttdeci">RemminaPluginLoaderFunc func</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8h_source.html#l00065">remmina_plugin_manager.h:65</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html"><div class="ttname"><a href="struct___remmina_secret_plugin.html">_RemminaSecretPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00135">plugin.h:135</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_a0b8798c3d17b453bddad4b948e9b0d9a"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a0b8798c3d17b453bddad4b948e9b0d9a">remmina_plugin_manager_for_each_plugin_stdout</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin_stdout(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div></div>
-<div class="ttc" id="remmina__plugin__manager_8h_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8h.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00609">remmina_plugin_manager.c:609</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8h_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8h.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00611">remmina_plugin_manager.c:611</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_ad1f54bd2495b4a74f9d0d23dda146f96"><div class="ttname"><a href="remmina__plugin__manager_8h.html#ad1f54bd2495b4a74f9d0d23dda146f96">RemminaPluginLoaderFunc</a></div><div class="ttdeci">gboolean(* RemminaPluginLoaderFunc)(RemminaPluginService *, const gchar *name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8h_source.html#l00061">remmina_plugin_manager.h:61</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_a1ef27b953decb0c707ec9a18da47a38f"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a1ef27b953decb0c707ec9a18da47a38f">remmina_gtksocket_available</a></div><div class="ttdeci">gboolean remmina_gtksocket_available()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00155">remmina_plugin_manager.c:155</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_a8b76c25d5cdebbe449b473ca02778105"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a8b76c25d5cdebbe449b473ca02778105">remmina_plugin_manager_add_loader</a></div><div class="ttdeci">void remmina_plugin_manager_add_loader(char *filetype, RemminaPluginLoaderFunc func)</div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_af60b8edfa50563ae4c7593efc3deed55"><div class="ttname"><a href="remmina__plugin__manager_8h.html#af60b8edfa50563ae4c7593efc3deed55">remmina_plugin_manager_get_canonical_setting_name</a></div><div class="ttdeci">const gchar * remmina_plugin_manager_get_canonical_setting_name(const RemminaProtocolSetting *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00456">remmina_plugin_manager.c:456</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8h_html_aef243c58b9e8c778232d5acb32c7729b"><div class="ttname"><a href="remmina__plugin__manager_8h.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a></div><div class="ttdeci">gboolean remmina_plugin_manager_is_encrypted_setting(RemminaProtocolPlugin *pp, const char *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00634">remmina_plugin_manager.c:634</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8h_html_a1668951fd7067f2c405e001836855080"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a></div><div class="ttdeci">gboolean remmina_plugin_manager_query_feature_by_type(RemminaPluginType ptype, const gchar *name, RemminaProtocolFeatureType ftype)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00615">remmina_plugin_manager.c:615</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8h_html_aedec4e9cf18d99a559aa51065c2bc276"><div class="ttname"><a href="remmina__plugin__manager_8h.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a></div><div class="ttdeci">void remmina_plugin_manager_show(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00519">remmina_plugin_manager.c:519</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8h_html_aef243c58b9e8c778232d5acb32c7729b"><div class="ttname"><a href="remmina__plugin__manager_8h.html#aef243c58b9e8c778232d5acb32c7729b">remmina_plugin_manager_is_encrypted_setting</a></div><div class="ttdeci">gboolean remmina_plugin_manager_is_encrypted_setting(RemminaProtocolPlugin *pp, const char *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00636">remmina_plugin_manager.c:636</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8h_html_a1668951fd7067f2c405e001836855080"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a></div><div class="ttdeci">gboolean remmina_plugin_manager_query_feature_by_type(RemminaPluginType ptype, const gchar *name, RemminaProtocolFeatureType ftype)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00617">remmina_plugin_manager.c:617</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8h_html_aedec4e9cf18d99a559aa51065c2bc276"><div class="ttname"><a href="remmina__plugin__manager_8h.html#aedec4e9cf18d99a559aa51065c2bc276">remmina_plugin_manager_show</a></div><div class="ttdeci">void remmina_plugin_manager_show(GtkWindow *parent)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00521">remmina_plugin_manager.c:521</a></div></div>
<div class="ttc" id="struct_remmina_plugin_loader_html_a56f300db088d387cc4de9dbcd4b8e96f"><div class="ttname"><a href="struct_remmina_plugin_loader.html#a56f300db088d387cc4de9dbcd4b8e96f">RemminaPluginLoader::filetype</a></div><div class="ttdeci">char * filetype</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8h_source.html#l00064">remmina_plugin_manager.h:64</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a></div><div class="ttdeci">RemminaProtocolFeatureType</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00046">types.h:46</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html_a92c2264598a43702594535cebbf4d8cd"><div class="ttname"><a href="remmina__plugin__manager_8h.html#a92c2264598a43702594535cebbf4d8cd">remmina_plugin_manager_init</a></div><div class="ttdeci">void remmina_plugin_manager_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00334">remmina_plugin_manager.c:334</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624a"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624a">RemminaPluginType</a></div><div class="ttdeci">RemminaPluginType</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00046">plugin.h:46</a></div></div>
<div class="ttc" id="struct_remmina_plugin_loader_html"><div class="ttname"><a href="struct_remmina_plugin_loader.html">RemminaPluginLoader</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8h_source.html#l00063">remmina_plugin_manager.h:63</a></div></div>
diff --git a/public/remmina__pref__dialog_8c_source.html b/public/remmina__pref__dialog_8c_source.html
index 6177c80eb..ab01c3eb0 100644
--- a/public/remmina__pref__dialog_8c_source.html
+++ b/public/remmina__pref__dialog_8c_source.html
@@ -122,7 +122,7 @@ $(document).ready(function(){initNavTree('remmina__pref__dialog_8c_source.html',
<div class="ttc" id="struct___remmina_pref_dialog_html_a9d7979bea3b5b1e6d4c0f30be3424ac3"><div class="ttname"><a href="struct___remmina_pref_dialog.html#a9d7979bea3b5b1e6d4c0f30be3424ac3">_RemminaPrefDialog::switch_security_audit</a></div><div class="ttdeci">GtkSwitch * switch_security_audit</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref__dialog_8h_source.html#l00066">remmina_pref_dialog.h:66</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a1d7deb091e0d51a8d7885ad9e22dc9a7"><div class="ttname"><a href="struct___remmina_pref.html#a1d7deb091e0d51a8d7885ad9e22dc9a7">_RemminaPref::ssh_parseconfig</a></div><div class="ttdeci">gboolean ssh_parseconfig</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00167">remmina_pref.h:167</a></div></div>
<div class="ttc" id="remmina__pref__dialog_8c_html_a9a050b69e373c90ea7d400aa94f34344"><div class="ttname"><a href="remmina__pref__dialog_8c.html#a9a050b69e373c90ea7d400aa94f34344">remmina_pref_dialog_init</a></div><div class="ttdeci">static void remmina_pref_dialog_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref__dialog_8c_source.html#l00446">remmina_pref_dialog.c:446</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00470">remmina_plugin_manager.c:470</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_a13f13a6a4280268656f258cb5aeff031"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a13f13a6a4280268656f258cb5aeff031">remmina_plugin_manager_for_each_plugin</a></div><div class="ttdeci">void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00472">remmina_plugin_manager.c:472</a></div></div>
<div class="ttc" id="struct___remmina_pref_dialog_html_a5d87faf3df58b2fc1e09a33fd07c4d0c"><div class="ttname"><a href="struct___remmina_pref_dialog.html#a5d87faf3df58b2fc1e09a33fd07c4d0c">_RemminaPrefDialog::entry_options_file_name</a></div><div class="ttdeci">GtkEntry * entry_options_file_name</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref__dialog_8h_source.html#l00054">remmina_pref_dialog.h:54</a></div></div>
<div class="ttc" id="struct___remmina_pref_dialog_html_ad87514b86ed3f9b5980bf6c565343b87"><div class="ttname"><a href="struct___remmina_pref_dialog.html#ad87514b86ed3f9b5980bf6c565343b87">_RemminaPrefDialog::checkbutton_appearance_fullscreen_on_auto</a></div><div class="ttdeci">GtkCheckButton * checkbutton_appearance_fullscreen_on_auto</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref__dialog_8h_source.html#l00069">remmina_pref_dialog.h:69</a></div></div>
<div class="ttc" id="struct___remmina_pref_dialog_html_a341e052b4a78587530b63975b7edc92d"><div class="ttname"><a href="struct___remmina_pref_dialog.html#a341e052b4a78587530b63975b7edc92d">_RemminaPrefDialog::label_terminal_foreground</a></div><div class="ttdeci">GtkLabel * label_terminal_foreground</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref__dialog_8h_source.html#l00116">remmina_pref_dialog.h:116</a></div></div>
diff --git a/public/remmina__protocol__widget_8c_source.html b/public/remmina__protocol__widget_8c_source.html
index 81ca5fbae..432bec51a 100644
--- a/public/remmina__protocol__widget_8c_source.html
+++ b/public/remmina__protocol__widget_8c_source.html
@@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8c_source.ht
<div class="ttc" id="remmina__protocol__widget_8c_html_ae2522242b3f39ee84ee8cf75170de0c0"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ae2522242b3f39ee84ee8cf75170de0c0">remmina_protocol_widget_chat_receive</a></div><div class="ttdeci">void remmina_protocol_widget_chat_receive(RemminaProtocolWidget *gp, const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02036">remmina_protocol_widget.c:2036</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_ab89dba73bc6832c6c5061a0d8bd0fbb4"><div class="ttname"><a href="remmina__message__panel_8c.html#ab89dba73bc6832c6c5061a0d8bd0fbb4">remmina_message_panel_field_get_filename</a></div><div class="ttdeci">gchar * remmina_message_panel_field_get_filename(RemminaMessagePanel *mp, int entryid)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00779">remmina_message_panel.c:779</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aaf355ea7103fc57a4cbc7b815cde2995"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a></div><div class="ttdeci">gint remmina_protocol_widget_get_width(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01389">remmina_protocol_widget.c:1389</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00145">types.h:145</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ab4c6435ef92e34a94270069ce1861907"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ab4c6435ef92e34a94270069ce1861907">remmina_protocol_widget_get_profile_remote_width</a></div><div class="ttdeci">gint remmina_protocol_widget_get_profile_remote_width(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01360">remmina_protocol_widget.c:1360</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aebc7c7d34c470081a52aa35d998ce868"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aebc7c7d34c470081a52aa35d998ce868">remmina_protocol_widget_panel_auth</a></div><div class="ttdeci">gint remmina_protocol_widget_panel_auth(RemminaProtocolWidget *gp, RemminaMessagePanelFlags pflags, const gchar *title, const gchar *default_username, const gchar *default_password, const gchar *default_domain, const gchar *password_prompt)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01694">remmina_protocol_widget.c:1694</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_signal_data_html_a2dfdc85f32d5eeed1d183088ac2a4ada"><div class="ttname"><a href="struct___remmina_protocol_widget_signal_data.html#a2dfdc85f32d5eeed1d183088ac2a4ada">_RemminaProtocolWidgetSignalData::signal_name</a></div><div class="ttdeci">const gchar * signal_name</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00124">remmina_protocol_widget.c:124</a></div></div>
@@ -200,7 +200,7 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8c_source.ht
<div class="ttc" id="structremmina__protocol__widget__dialog__mt__data__t_html_a29b8f44a7f4514422d3a5e04e0b8f0b5"><div class="ttname"><a href="structremmina__protocol__widget__dialog__mt__data__t.html#a29b8f44a7f4514422d3a5e04e0b8f0b5">remmina_protocol_widget_dialog_mt_data_t::rcbutton</a></div><div class="ttdeci">int rcbutton</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01497">remmina_protocol_widget.c:1497</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a69757e0c39fa9fcf31800f6375772016"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a69757e0c39fa9fcf31800f6375772016">conn_closed</a></div><div class="ttdeci">static gboolean conn_closed(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00344">remmina_protocol_widget.c:344</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a15368afcbeb770f8cf25941bd49e7b54"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget_set_display</a></div><div class="ttdeci">void remmina_protocol_widget_set_display(RemminaProtocolWidget *gp, gint display)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01347">remmina_protocol_widget.c:1347</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78a"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a></div><div class="ttdeci">RemminaProtocolWidgetResolutionMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00147">types.h:147</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78a"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a></div><div class="ttdeci">RemminaProtocolWidgetResolutionMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00148">types.h:148</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_priv_html_af72272c7e2f45d61130ab4e57eb86380"><div class="ttname"><a href="struct___remmina_protocol_widget_priv.html#af72272c7e2f45d61130ab4e57eb86380">_RemminaProtocolWidgetPriv::height</a></div><div class="ttdeci">gint height</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00066">remmina_protocol_widget.c:66</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00049">types.h:49</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a41b62f211a8a8e960bc80aa1ba6b0380"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a41b62f211a8a8e960bc80aa1ba6b0380">remmina_protocol_widget_set_width</a></div><div class="ttdeci">void remmina_protocol_widget_set_width(RemminaProtocolWidget *gp, gint width)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01395">remmina_protocol_widget.c:1395</a></div></div>
@@ -214,13 +214,13 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8c_source.ht
<div class="ttc" id="remmina__protocol__widget_8c_html_ac9da39853a32523057759a498bf6ac0a"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ac9da39853a32523057759a498bf6ac0a">remmina_protocol_widget_unmap_event</a></div><div class="ttdeci">gboolean remmina_protocol_widget_unmap_event(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00736">remmina_protocol_widget.c:736</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_affb2413c00f0681fe08f90523f7e1471"><div class="ttname"><a href="remmina__protocol__widget_8c.html#affb2413c00f0681fe08f90523f7e1471">remmina_protocol_widget_send_keystrokes</a></div><div class="ttdeci">void remmina_protocol_widget_send_keystrokes(RemminaProtocolWidget *gp, GtkMenuItem *widget)</div><div class="ttdoc">Send to the plugin some keystrokes. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00512">remmina_protocol_widget.c:512</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ab224a0f643d291f86ede54e373bd0a6f"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ab224a0f643d291f86ede54e373bd0a6f">remmina_protocol_widget_get_name</a></div><div class="ttdeci">const gchar * remmina_protocol_widget_get_name(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01383">remmina_protocol_widget.c:1383</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00150">types.h:150</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00151">types.h:151</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a278e13b53a4fdb65498e00e908edb98d"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a278e13b53a4fdb65498e00e908edb98d">remmina_protocol_widget_panel_show_listen</a></div><div class="ttdeci">void remmina_protocol_widget_panel_show_listen(RemminaProtocolWidget *gp, gint port)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01944">remmina_protocol_widget.c:1944</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd">REMMINA_TYPEHINT_STRING</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00062">types.h:62</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aeffe07c6412286d99ba04f05fe74aeac"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aeffe07c6412286d99ba04f05fe74aeac">cancel_start_reverse_tunnel_cb</a></div><div class="ttdeci">static void cancel_start_reverse_tunnel_cb(void *cbdata, int btn)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01157">remmina_protocol_widget.c:1157</a></div></div>
<div class="ttc" id="structremmina__masterthread__exec__data_html_a3b8dfbacdde21a1a75007cde8e31bfd6"><div class="ttname"><a href="structremmina__masterthread__exec__data.html#a3b8dfbacdde21a1a75007cde8e31bfd6">remmina_masterthread_exec_data::protocolwidget_mpprogress</a></div><div class="ttdeci">struct remmina_masterthread_exec_data::@12::@21 protocolwidget_mpprogress</div></div>
<div class="ttc" id="struct___remmina_protocol_widget_priv_html_a7c8675e38544a9c393b560b31d165791"><div class="ttname"><a href="struct___remmina_protocol_widget_priv.html#a7c8675e38544a9c393b560b31d165791">_RemminaProtocolWidgetPriv::save_password</a></div><div class="ttdeci">gboolean save_password</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00096">remmina_protocol_widget.c:96</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a></div><div class="ttdeci">RemminaMessagePanelFlags</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00155">types.h:155</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a></div><div class="ttdeci">RemminaMessagePanelFlags</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
<div class="ttc" id="remmina__message__panel_8h_html_aabfcbcb5ac86a1edac4035264bc7d2b8a9efe2bb3f139ed0baf3833880fc2369a"><div class="ttname"><a href="remmina__message__panel_8h.html#aabfcbcb5ac86a1edac4035264bc7d2b8a9efe2bb3f139ed0baf3833880fc2369a">REMMINA_MESSAGE_PANEL_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8h_source.html#l00056">remmina_message_panel.h:56</a></div></div>
<div class="ttc" id="remmina__ext__exec_8h_html"><div class="ttname"><a href="remmina__ext__exec_8h.html">remmina_ext_exec.h</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_aec9dcd96d0148fec9cdc9e94cc8dc1ff"><div class="ttname"><a href="remmina__message__panel_8c.html#aec9dcd96d0148fec9cdc9e94cc8dc1ff">remmina_message_panel_field_set_filename</a></div><div class="ttdeci">void remmina_message_panel_field_set_filename(RemminaMessagePanel *mp, int entryid, const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00762">remmina_message_panel.c:762</a></div></div>
@@ -249,7 +249,7 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8c_source.ht
<div class="ttc" id="struct___remmina_protocol_feature_html_ab3c15094a16418c5951c5382c8a44190"><div class="ttname"><a href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">_RemminaProtocolFeature::opt3</a></div><div class="ttdeci">gpointer opt3</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00077">types.h:77</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_acf75fd4bac28a3d53da064b2905f23c1"><div class="ttname"><a href="remmina__protocol__widget_8c.html#acf75fd4bac28a3d53da064b2905f23c1">remmina_protocol_widget_panel_changed_certificate</a></div><div class="ttdeci">gint remmina_protocol_widget_panel_changed_certificate(RemminaProtocolWidget *gp, const gchar *subject, const gchar *issuer, const gchar *new_fingerprint, const gchar *old_fingerprint)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01796">remmina_protocol_widget.c:1796</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_priv_html_a93da102535413a0b3b1b740b582444ca"><div class="ttname"><a href="struct___remmina_protocol_widget_priv.html#a93da102535413a0b3b1b740b582444ca">_RemminaProtocolWidgetPriv::profile_remote_height</a></div><div class="ttdeci">gint profile_remote_height</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00084">remmina_protocol_widget.c:84</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00151">types.h:151</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00152">types.h:152</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ab9632c73b32531b7bea976e10204670b"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ab9632c73b32531b7bea976e10204670b">remmina_protocol_widget_get_clientcert</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_clientcert(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01872">remmina_protocol_widget.c:1872</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a97cba8208a4348446159bf465b3233f5"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a97cba8208a4348446159bf465b3233f5">remmina_protocol_widget_mpdestroy</a></div><div class="ttdeci">void remmina_protocol_widget_mpdestroy(RemminaConnectionObject *cnnobj, RemminaMessagePanel *mp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00895">remmina_protocol_widget.c:895</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a879c265f2e8050e4e72a061ab3747ee1ad56c3878c4a651b51fdb3d0e8b9cebd7"><div class="ttname"><a href="remmina__ssh_8h.html#a879c265f2e8050e4e72a061ab3747ee1ad56c3878c4a651b51fdb3d0e8b9cebd7">REMMINA_SSH_AUTH_RECONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00115">remmina_ssh.h:115</a></div></div>
@@ -291,7 +291,7 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8c_source.ht
<div class="ttc" id="structremmina__protocol__widget__dialog__mt__data__t_html_a14655c577c6f070ee28f4211baf05361"><div class="ttname"><a href="structremmina__protocol__widget__dialog__mt__data__t.html#a14655c577c6f070ee28f4211baf05361">remmina_protocol_widget_dialog_mt_data_t::default_domain</a></div><div class="ttdeci">gchar * default_domain</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01488">remmina_protocol_widget.c:1488</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a223f8dd7a678bcec2ece40a2d8f7ea06"><div class="ttname"><a href="remmina__ssh_8h.html#a223f8dd7a678bcec2ece40a2d8f7ea06">remmina_ssh_tunnel_free</a></div><div class="ttdeci">void remmina_ssh_tunnel_free(RemminaSSHTunnel *tunnel)</div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a9275874ac61d3750aa677a36da714373a622fa08b626cd4dc1faf24c073e15c65"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a9275874ac61d3750aa677a36da714373a622fa08b626cd4dc1faf24c073e15c65">RPWDT_QUESTIONYESNO</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00106">remmina_protocol_widget.c:106</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00149">types.h:149</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00150">types.h:150</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_priv_html_a2c5f3bd1f990157bef034920db49dc6e"><div class="ttname"><a href="struct___remmina_protocol_widget_priv.html#a2c5f3bd1f990157bef034920db49dc6e">_RemminaProtocolWidgetPriv::cacert</a></div><div class="ttdeci">gchar * cacert</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00098">remmina_protocol_widget.c:98</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a11480396cb379860d16d9d41ef91ecb1"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a11480396cb379860d16d9d41ef91ecb1">remmina_protocol_widget_close_all_tunnels</a></div><div class="ttdeci">static void remmina_protocol_widget_close_all_tunnels(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00154">remmina_protocol_widget.c:154</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a04f0a11e50cdbd98ab80984fd5aca16d"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a04f0a11e50cdbd98ab80984fd5aca16d">remmina_protocol_widget_chat_on_destroy</a></div><div class="ttdeci">static void remmina_protocol_widget_chat_on_destroy(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02007">remmina_protocol_widget.c:2007</a></div></div>
@@ -306,24 +306,24 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8c_source.ht
<div class="ttc" id="remmina__message__panel_8h_html_ae2923c94c1caf1ac4a7eb48361d2670a"><div class="ttname"><a href="remmina__message__panel_8h.html#ae2923c94c1caf1ac4a7eb48361d2670a">RemminaMessagePanelCallback</a></div><div class="ttdeci">void(* RemminaMessagePanelCallback)(void *user_data, int button)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8h_source.html#l00067">remmina_message_panel.h:67</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ac3e5a7f14aef4adb2e57d35e9c180b3b"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget_emit_signal</a></div><div class="ttdeci">void remmina_protocol_widget_emit_signal(RemminaProtocolWidget *gp, const gchar *signal_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00748">remmina_protocol_widget.c:748</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_a44054d029d4615092ae8a2ee1bf81db4"><div class="ttname"><a href="remmina__message__panel_8c.html#a44054d029d4615092ae8a2ee1bf81db4">remmina_message_panel_field_get_string</a></div><div class="ttdeci">gchar * remmina_message_panel_field_get_string(RemminaMessagePanel *mp, int entryid)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00707">remmina_message_panel.c:707</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a006b0d6d883c6dd0da6c444991973ac7"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7">_RemminaProtocolFeature::opt2_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt2_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00079">types.h:79</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a2830f756dfc3d735b57b0c5753c429e3"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget_is_closed</a></div><div class="ttdeci">gboolean remmina_protocol_widget_is_closed(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01470">remmina_protocol_widget.c:1470</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a08d312825fc0de9f9286279d99f763a1"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a08d312825fc0de9f9286279d99f763a1">remmina_protocol_widget_get_clientkey</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_clientkey(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01881">remmina_protocol_widget.c:1881</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_aa7ac5ec9d95867734619583a2049e952"><div class="ttname"><a href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">_RemminaProtocolFeature::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00075">types.h:75</a></div></div>
<div class="ttc" id="rcw_8c_html_a29701ae152ba15f6d8921f395174d2df"><div class="ttname"><a href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a></div><div class="ttdeci">RemminaPref remmina_pref</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00079">rcw.c:79</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a7b1e83afd68c2b7301fc4d6da6a8f6d8"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a7b1e83afd68c2b7301fc4d6da6a8f6d8">run_destroy_handler</a></div><div class="ttdeci">static void run_destroy_handler(RemminaMessagePanel *mp, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01603">remmina_protocol_widget.c:1603</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_afae4072b7d8b54392ec08da7d6ead620"><div class="ttname"><a href="remmina__message__panel_8c.html#afae4072b7d8b54392ec08da7d6ead620">remmina_message_panel_setup_progress</a></div><div class="ttdeci">void remmina_message_panel_setup_progress(RemminaMessagePanel *mp, const gchar *message, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00128">remmina_message_panel.c:128</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_priv_html_aa37ce53d4329aaaa7c4059c60882a533"><div class="ttname"><a href="struct___remmina_protocol_widget_priv.html#aa37ce53d4329aaaa7c4059c60882a533">_RemminaProtocolWidgetPriv::scalemode</a></div><div class="ttdeci">RemminaScaleMode scalemode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00067">remmina_protocol_widget.c:67</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
<div class="ttc" id="remmina__message__panel_8h_html_aabfcbcb5ac86a1edac4035264bc7d2b8a34c1441f93d50321cbabcfb45918c6e3"><div class="ttname"><a href="remmina__message__panel_8h.html#aabfcbcb5ac86a1edac4035264bc7d2b8a34c1441f93d50321cbabcfb45918c6e3">REMMINA_MESSAGE_PANEL_CLIENTKEYFILE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8h_source.html#l00062">remmina_message_panel.h:62</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a4884356c195dcfb4ceacf641a1e74e66"><div class="ttname"><a href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a></div><div class="ttdeci">gint remmina_file_get_int(RemminaFile *remminafile, const gchar *setting, gint default_value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00603">remmina_file.c:603</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a172fa9cf2ce196c9846a3e47ea9036b4"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a172fa9cf2ce196c9846a3e47ea9036b4">remmina_protocol_widget_start_xport_tunnel</a></div><div class="ttdeci">gboolean remmina_protocol_widget_start_xport_tunnel(RemminaProtocolWidget *gp, RemminaXPortTunnelInitFunc init_func)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01302">remmina_protocol_widget.c:1302</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_ae0dc6952f8015848cf97950fcc7d9997"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#ae0dc6952f8015848cf97950fcc7d9997">_RemminaProtocolPlugin::map_event</a></div><div class="ttdeci">gboolean(* map_event)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00086">plugin.h:86</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a605b69a9aa4393024369cc5070488692"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget_call_feature_by_ref</a></div><div class="ttdeci">void remmina_protocol_widget_call_feature_by_ref(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00811">remmina_protocol_widget.c:811</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="structremmina__protocol__widget__dialog__mt__data__t_html_a3ecf120415414844ebcf07a1c86e9cdf"><div class="ttname"><a href="structremmina__protocol__widget__dialog__mt__data__t.html#a3ecf120415414844ebcf07a1c86e9cdf">remmina_protocol_widget_dialog_mt_data_t::pt_mutex</a></div><div class="ttdeci">pthread_mutex_t pt_mutex</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01494">remmina_protocol_widget.c:1494</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a9275874ac61d3750aa677a36da714373"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a9275874ac61d3750aa677a36da714373">panel_type</a></div><div class="ttdeci">panel_type</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00104">remmina_protocol_widget.c:104</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_aa49520ac95b505c111abfb7f3b7c55de"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#aa49520ac95b505c111abfb7f3b7c55de">_RemminaProtocolPlugin::query_feature</a></div><div class="ttdeci">gboolean(* query_feature)(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00082">plugin.h:82</a></div></div>
@@ -372,7 +372,7 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8c_source.ht
<div class="ttc" id="remmina__chat__window_8c_html_a45724aed5474dd741563ffbf89237022"><div class="ttname"><a href="remmina__chat__window_8c.html#a45724aed5474dd741563ffbf89237022">remmina_chat_window_receive</a></div><div class="ttdeci">void remmina_chat_window_receive(RemminaChatWindow *window, const gchar *name, const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__chat__window_8c_source.html#l00250">remmina_chat_window.c:250</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a4a3a9ba7422fc302b0b412ac771c9953"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a4a3a9ba7422fc302b0b412ac771c9953">remmina_protocol_widget_chat_close</a></div><div class="ttdeci">void remmina_protocol_widget_chat_close(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02029">remmina_protocol_widget.c:2029</a></div></div>
<div class="ttc" id="remmina__public_8c_html_adc8b77823386e00e610527d6b0b61149"><div class="ttname"><a href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a></div><div class="ttdeci">void remmina_public_get_server_port(const gchar *server, gint defaultport, gchar **host, gint *port)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00422">remmina_public.c:422</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00148">types.h:148</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00149">types.h:149</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a52b3f47eac79f2781ba81d61505f4f53"><div class="ttname"><a href="remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53">remmina_ssh_tunnel_open</a></div><div class="ttdeci">gboolean remmina_ssh_tunnel_open(RemminaSSHTunnel *tunnel, const gchar *host, gint port, gint local_port)</div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html">_RemminaPluginScreenshotData</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00083">types.h:83</a></div></div>
<div class="ttc" id="remmina__chat__window_8c_html_a5e4fa655fddf361fed13bbd759bea24f"><div class="ttname"><a href="remmina__chat__window_8c.html#a5e4fa655fddf361fed13bbd759bea24f">remmina_chat_window_new</a></div><div class="ttdeci">GtkWidget * remmina_chat_window_new(GtkWindow *parent, const gchar *chat_with)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__chat__window_8c_source.html#l00159">remmina_chat_window.c:159</a></div></div>
diff --git a/public/remmina__protocol__widget_8h_source.html b/public/remmina__protocol__widget_8h_source.html
index 9dbc7c900..4e03cf008 100644
--- a/public/remmina__protocol__widget_8h_source.html
+++ b/public/remmina__protocol__widget_8h_source.html
@@ -117,7 +117,7 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8h_source.ht
<div class="ttc" id="remmina__protocol__widget_8h_html_a97cba8208a4348446159bf465b3233f5"><div class="ttname"><a href="remmina__protocol__widget_8h.html#a97cba8208a4348446159bf465b3233f5">remmina_protocol_widget_mpdestroy</a></div><div class="ttdeci">void remmina_protocol_widget_mpdestroy(RemminaConnectionObject *cnnobj, RemminaMessagePanel *mp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00895">remmina_protocol_widget.c:895</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_a9473da27fd10eb46ef8360f9ad4be86d"><div class="ttname"><a href="remmina__protocol__widget_8h.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget_get_cacert</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_cacert(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01854">remmina_protocol_widget.c:1854</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_a5c2137462d3168e90c812f1ce75a6e62"><div class="ttname"><a href="remmina__protocol__widget_8h.html#a5c2137462d3168e90c812f1ce75a6e62">remmina_protocol_widget_new</a></div><div class="ttdeci">GtkWidget * remmina_protocol_widget_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02093">remmina_protocol_widget.c:2093</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a></div><div class="ttdeci">RemminaMessagePanelFlags</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00155">types.h:155</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a></div><div class="ttdeci">RemminaMessagePanelFlags</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_ac705ffa194e3c3457e9a0a1bd6c79be8"><div class="ttname"><a href="remmina__protocol__widget_8h.html#ac705ffa194e3c3457e9a0a1bd6c79be8">remmina_protocol_widget_setup</a></div><div class="ttdeci">void remmina_protocol_widget_setup(RemminaProtocolWidget *gp, RemminaFile *remminafile, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02058">remmina_protocol_widget.c:2058</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_affb2413c00f0681fe08f90523f7e1471"><div class="ttname"><a href="remmina__protocol__widget_8h.html#affb2413c00f0681fe08f90523f7e1471">remmina_protocol_widget_send_keystrokes</a></div><div class="ttdeci">void remmina_protocol_widget_send_keystrokes(RemminaProtocolWidget *gp, GtkMenuItem *widget)</div><div class="ttdoc">Send to the plugin some keystrokes. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00512">remmina_protocol_widget.c:512</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_a480f842fac65440c367bf3c3d87d2601"><div class="ttname"><a href="remmina__protocol__widget_8h.html#a480f842fac65440c367bf3c3d87d2601">remmina_protocol_widget_plugin_receives_keystrokes</a></div><div class="ttdeci">gboolean remmina_protocol_widget_plugin_receives_keystrokes(RemminaProtocolWidget *gp)</div><div class="ttdoc">Check if the plugin accepts keystrokes. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00504">remmina_protocol_widget.c:504</a></div></div>
@@ -151,7 +151,7 @@ $(document).ready(function(){initNavTree('remmina__protocol__widget_8h_source.ht
<div class="ttc" id="remmina__protocol__widget_8h_html_aca61c93aaf5f3cbc2046c8267bb84a2e"><div class="ttname"><a href="remmina__protocol__widget_8h.html#aca61c93aaf5f3cbc2046c8267bb84a2e">remmina_protocol_widget_get_type</a></div><div class="ttdeci">GType remmina_protocol_widget_get_type(void) G_GNUC_CONST</div></div>
<div class="ttc" id="rcw_8h_html"><div class="ttname"><a href="rcw_8h.html">rcw.h</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_a0b19dbe685e4465e7f06706270e120fa"><div class="ttname"><a href="remmina__protocol__widget_8h.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a></div><div class="ttdeci">void remmina_protocol_widget_set_expand(RemminaProtocolWidget *gp, gboolean expand)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01431">remmina_protocol_widget.c:1431</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_a05b5edfc3d3d0dcff1745d1d35aaca5c"><div class="ttname"><a href="remmina__protocol__widget_8h.html#a05b5edfc3d3d0dcff1745d1d35aaca5c">remmina_protocol_widget_signal_connection_opened</a></div><div class="ttdeci">void remmina_protocol_widget_signal_connection_opened(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00396">remmina_protocol_widget.c:396</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_ac3e5a7f14aef4adb2e57d35e9c180b3b"><div class="ttname"><a href="remmina__protocol__widget_8h.html#ac3e5a7f14aef4adb2e57d35e9c180b3b">remmina_protocol_widget_emit_signal</a></div><div class="ttdeci">void remmina_protocol_widget_emit_signal(RemminaProtocolWidget *gp, const gchar *signal_name)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00748">remmina_protocol_widget.c:748</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_aa674c14f3a46dd5eb6b53d6f8ce6bd31"><div class="ttname"><a href="remmina__protocol__widget_8h.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget_panel_authx509</a></div><div class="ttdeci">gint remmina_protocol_widget_panel_authx509(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01756">remmina_protocol_widget.c:1756</a></div></div>
diff --git a/public/remmina__sftp__plugin_8c.html b/public/remmina__sftp__plugin_8c.html
index bcfa4706a..b51e92ec6 100644
--- a/public/remmina__sftp__plugin_8c.html
+++ b/public/remmina__sftp__plugin_8c.html
@@ -483,7 +483,7 @@ Variables</h2></td></tr>
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, </div><div class="line"> <span class="stringliteral">&quot;SFTP&quot;</span>, </div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SFTP - Secure File Transfer&quot;</span>), </div><div class="line"> GETTEXT_PACKAGE, </div><div class="line"> VERSION, </div><div class="line"> <span class="stringliteral">&quot;org.remmina.Remmina-sftp-symbolic&quot;</span>, </div><div class="line"> <span class="stringliteral">&quot;org.remmina.Remmina-sftp-symbolic&quot;</span>, </div><div class="line"> <a class="code" href="remmina__sftp__plugin_8c.html#a999de1dbe291169ccc33dffa123a1315">remmina_sftp_basic_settings</a>, </div><div class="line"> NULL, </div><div class="line"> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>, </div><div class="line"> <a class="code" href="remmina__sftp__plugin_8c.html#a924786df34d61d90471f38dfd37aa855">remmina_plugin_sftp_features</a>, </div><div class="line"> <a class="code" href="remmina__sftp__plugin_8c.html#aa3a2916593de087ed150cd9e00e4b543">remmina_plugin_sftp_init</a>, </div><div class="line"> <a class="code" href="remmina__sftp__plugin_8c.html#a0553d8f4834a1865e3640ec4180e63c4">remmina_plugin_sftp_open_connection</a>, </div><div class="line"> <a class="code" href="remmina__sftp__plugin_8c.html#acc468c14d98ace55509ad2b8fb502e3a">remmina_plugin_sftp_close_connection</a>, </div><div class="line"> <a class="code" href="remmina__sftp__plugin_8c.html#abd7099f5655a134c598ef95564254323">remmina_plugin_sftp_query_feature</a>, </div><div class="line"> <a class="code" href="remmina__sftp__plugin_8c.html#a8d16ecc8e6e653a678e7f93b033e5863">remmina_plugin_sftp_call_feature</a>, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL </div><div class="line">}</div><div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_a0553d8f4834a1865e3640ec4180e63c4"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#a0553d8f4834a1865e3640ec4180e63c4">remmina_plugin_sftp_open_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_sftp_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00222">remmina_sftp_plugin.c:222</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_aa3a2916593de087ed150cd9e00e4b543"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#aa3a2916593de087ed150cd9e00e4b543">remmina_plugin_sftp_init</a></div><div class="ttdeci">static void remmina_plugin_sftp_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00189">remmina_sftp_plugin.c:189</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_a999de1dbe291169ccc33dffa123a1315"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#a999de1dbe291169ccc33dffa123a1315">remmina_sftp_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_sftp_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00349">remmina_sftp_plugin.c:349</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_a924786df34d61d90471f38dfd37aa855"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#a924786df34d61d90471f38dfd37aa855">remmina_plugin_sftp_features</a></div><div class="ttdeci">static const RemminaProtocolFeature remmina_plugin_sftp_features[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00319">remmina_sftp_plugin.c:319</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_acc468c14d98ace55509ad2b8fb502e3a"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#acc468c14d98ace55509ad2b8fb502e3a">remmina_plugin_sftp_close_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_sftp_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00243">remmina_sftp_plugin.c:243</a></div></div>
@@ -543,11 +543,11 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, <span class="stringliteral">&quot;_sftp-ssh._tcp&quot;</span>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;ssh_auth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Authentication type&quot;</span>), FALSE, <a class="code" href="remmina__sftp__plugin_8c.html#ab69dae8eb9c3744fcf53a0f482b18f19">ssh_auth</a>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>, <span class="stringliteral">&quot;ssh_privatekey&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH identity file&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;ssh_passphrase&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password to unlock private key&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_proxycommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH Proxy Command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_ab69dae8eb9c3744fcf53a0f482b18f19"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#ab69dae8eb9c3744fcf53a0f482b18f19">ssh_auth</a></div><div class="ttdeci">static gpointer ssh_auth[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00307">remmina_sftp_plugin.c:307</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
diff --git a/public/remmina__sftp__plugin_8c_source.html b/public/remmina__sftp__plugin_8c_source.html
index 982d1cd8b..8ef1e0058 100644
--- a/public/remmina__sftp__plugin_8c_source.html
+++ b/public/remmina__sftp__plugin_8c_source.html
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('remmina__sftp__plugin_8c_source.html',
<div class="ttc" id="remmina__ssh_8h_html"><div class="ttname"><a href="remmina__ssh_8h.html">remmina_ssh.h</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a7ac875d202f1ccd0ae85bb60ee3222c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">_RemminaPluginService::protocol_plugin_set_error</a></div><div class="ttdeci">void(* protocol_plugin_set_error)(RemminaProtocolWidget *gp, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00176">plugin.h:176</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_a3aaebd7f03b7d8601818fabc46b787ed"><div class="ttname"><a href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">_RemminaSSH::error</a></div><div class="ttdeci">gchar * error</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00080">remmina_ssh.h:80</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a52a0986eaf54c9e606ce9cdf8bb57e60"><div class="ttname"><a href="remmina__file_8c.html#a52a0986eaf54c9e606ce9cdf8bb57e60">remmina_file_dup_temp_protocol</a></div><div class="ttdeci">RemminaFile * remmina_file_dup_temp_protocol(RemminaFile *remminafile, const gchar *new_protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00899">remmina_file.c:899</a></div></div>
<div class="ttc" id="struct___remmina_s_f_t_p_html"><div class="ttname"><a href="struct___remmina_s_f_t_p.html">_RemminaSFTP</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00220">remmina_ssh.h:220</a></div></div>
@@ -137,18 +137,18 @@ $(document).ready(function(){initNavTree('remmina__sftp__plugin_8c_source.html',
<div class="ttc" id="struct___remmina_plugin_sftp_data_html_ac68cbef0e07b34da2b0dc8e5f022bda5"><div class="ttname"><a href="struct___remmina_plugin_sftp_data.html#ac68cbef0e07b34da2b0dc8e5f022bda5">_RemminaPluginSftpData::thread</a></div><div class="ttdeci">pthread_t thread</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00061">remmina_sftp_plugin.c:61</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">static RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00065">remmina_sftp_plugin.c:65</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_a76ed92539dfe749a24a3a3b99f3a644f"><div class="ttname"><a href="struct___remmina_s_s_h.html#a76ed92539dfe749a24a3a3b99f3a644f">_RemminaSSH::tunnel_entrance_port</a></div><div class="ttdeci">gint tunnel_entrance_port</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00089">remmina_ssh.h:89</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a879c265f2e8050e4e72a061ab3747ee1ad56c3878c4a651b51fdb3d0e8b9cebd7"><div class="ttname"><a href="remmina__ssh_8h.html#a879c265f2e8050e4e72a061ab3747ee1ad56c3878c4a651b51fdb3d0e8b9cebd7">REMMINA_SSH_AUTH_RECONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00115">remmina_ssh.h:115</a></div></div>
<div class="ttc" id="remmina__ftp__client_8c_html_a1ef77e687209d258ec576c31614ea60f"><div class="ttname"><a href="remmina__ftp__client_8c.html#a1ef77e687209d258ec576c31614ea60f">remmina_ftp_client_set_dir</a></div><div class="ttdeci">void remmina_ftp_client_set_dir(RemminaFTPClient *client, const gchar *dir)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ftp__client_8c_source.html#l01146">remmina_ftp_client.c:1146</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_a999de1dbe291169ccc33dffa123a1315"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#a999de1dbe291169ccc33dffa123a1315">remmina_sftp_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_sftp_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00349">remmina_sftp_plugin.c:349</a></div></div>
<div class="ttc" id="remmina__file_8c_html_af153b0d289ac93f6ecdaa15d5f3b9b8c"><div class="ttname"><a href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a></div><div class="ttdeci">void remmina_file_set_int(RemminaFile *remminafile, const gchar *setting, gint value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00585">remmina_file.c:585</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a4558dbff70064da3de58a6d684611fad"><div class="ttname"><a href="struct___remmina_plugin_service.html#a4558dbff70064da3de58a6d684611fad">_RemminaPluginService::protocol_plugin_set_expand</a></div><div class="ttdeci">void(* protocol_plugin_set_expand)(RemminaProtocolWidget *gp, gboolean expand)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00174">plugin.h:174</a></div></div>
<div class="ttc" id="struct___remmina_s_f_t_p_client_html"><div class="ttname"><a href="struct___remmina_s_f_t_p_client.html">_RemminaSFTPClient</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__client_8h_source.html#l00056">remmina_sftp_client.h:56</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_aebc7525b6f72d22c1ce4df93c1576602"><div class="ttname"><a href="struct___remmina_s_s_h.html#aebc7525b6f72d22c1ce4df93c1576602">_RemminaSSH::tunnel_entrance_host</a></div><div class="ttdeci">gchar * tunnel_entrance_host</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00088">remmina_ssh.h:88</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
<div class="ttc" id="struct___remmina_plugin_sftp_data_html"><div class="ttname"><a href="struct___remmina_plugin_sftp_data.html">_RemminaPluginSftpData</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00059">remmina_sftp_plugin.c:59</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a1500d65d1f0751812f237c1cb4d15188"><div class="ttname"><a href="remmina__ssh_8h.html#a1500d65d1f0751812f237c1cb4d15188">remmina_sftp_new_from_ssh</a></div><div class="ttdeci">RemminaSFTP * remmina_sftp_new_from_ssh(RemminaSSH *ssh)</div></div>
@@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('remmina__sftp__plugin_8c_source.html',
<div class="ttc" id="struct___remmina_s_s_h_html_aa8e75d0a635b3390100218bee6b49378"><div class="ttname"><a href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">_RemminaSSH::callback</a></div><div class="ttdeci">ssh_callbacks callback</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00061">remmina_ssh.h:61</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a1e09b32044c240a7dce0ad8afcbf0ff2"><div class="ttname"><a href="remmina__ssh_8h.html#a1e09b32044c240a7dce0ad8afcbf0ff2">remmina_sftp_open</a></div><div class="ttdeci">gboolean remmina_sftp_open(RemminaSFTP *sftp)</div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_a924786df34d61d90471f38dfd37aa855"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#a924786df34d61d90471f38dfd37aa855">remmina_plugin_sftp_features</a></div><div class="ttdeci">static const RemminaProtocolFeature remmina_plugin_sftp_features[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00319">remmina_sftp_plugin.c:319</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a258d391bcfff1409d27bee0743aec6c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">_RemminaPluginService::protocol_plugin_set_height</a></div><div class="ttdeci">void(* protocol_plugin_set_height)(RemminaProtocolWidget *gp, gint height)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00171">plugin.h:171</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8h_html"><div class="ttname"><a href="remmina__sftp__plugin_8h.html">remmina_sftp_plugin.h</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_aaaf171c31b73f06f1026239253d9f6b9"><div class="ttname"><a href="remmina__ssh_8h.html#aaaf171c31b73f06f1026239253d9f6b9">remmina_sftp_free</a></div><div class="ttdeci">void remmina_sftp_free(RemminaSFTP *sftp)</div></div>
diff --git a/public/remmina__ssh_8c_source.html b/public/remmina__ssh_8c_source.html
index 136fa13fa..982efbedc 100644
--- a/public/remmina__ssh_8c_source.html
+++ b/public/remmina__ssh_8c_source.html
@@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('remmina__ssh_8c_source.html','');});
<div class="ttc" id="struct___remmina_s_s_h_html_a3aaebd7f03b7d8601818fabc46b787ed"><div class="ttname"><a href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">_RemminaSSH::error</a></div><div class="ttdeci">gchar * error</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00080">remmina_ssh.h:80</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_aa34e103281dafaa073d2a676b3368529"><div class="ttname"><a href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">_RemminaSSH::passphrase</a></div><div class="ttdeci">gchar * passphrase</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00084">remmina_ssh.h:84</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aebc7c7d34c470081a52aa35d998ce868"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aebc7c7d34c470081a52aa35d998ce868">remmina_protocol_widget_panel_auth</a></div><div class="ttdeci">gint remmina_protocol_widget_panel_auth(RemminaProtocolWidget *gp, RemminaMessagePanelFlags pflags, const gchar *title, const gchar *default_username, const gchar *default_password, const gchar *default_domain, const gchar *password_prompt)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01694">remmina_protocol_widget.c:1694</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_a547feb6e46dfb8e37a4eb338c17d7b52"><div class="ttname"><a href="struct___remmina_s_s_h.html#a547feb6e46dfb8e37a4eb338c17d7b52">_RemminaSSH::ssh_mutex</a></div><div class="ttdeci">pthread_mutex_t ssh_mutex</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00082">remmina_ssh.h:82</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a9ed3110b7b030bccd0ff9ed70e86da2d"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a9ed3110b7b030bccd0ff9ed70e86da2d">remmina_protocol_widget_get_savepassword</a></div><div class="ttdeci">gboolean remmina_protocol_widget_get_savepassword(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01848">remmina_protocol_widget.c:1848</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
@@ -207,14 +207,14 @@ $(document).ready(function(){initNavTree('remmina__ssh_8c_source.html','');});
<div class="ttc" id="remmina__public_8c_html_a52656bbe00a83068f36337f449bdc767"><div class="ttname"><a href="remmina__public_8c.html#a52656bbe00a83068f36337f449bdc767">remmina_public_open_xdisplay</a></div><div class="ttdeci">gint remmina_public_open_xdisplay(const gchar *disp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00494">remmina_public.c:494</a></div></div>
<div class="ttc" id="remmina__ssh_8c_html_a6e57a1b5ba4a3886c4cb79ece8894796"><div class="ttname"><a href="remmina__ssh_8c.html#a6e57a1b5ba4a3886c4cb79ece8894796">remmina_ssh_auth_agent</a></div><div class="ttdeci">static enum remmina_ssh_auth_result remmina_ssh_auth_agent(RemminaSSH *ssh)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8c_source.html#l00994">remmina_ssh.c:994</a></div></div>
<div class="ttc" id="rcw_8c_html_a29701ae152ba15f6d8921f395174d2df"><div class="ttname"><a href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a></div><div class="ttdeci">RemminaPref remmina_pref</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00079">rcw.c:79</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_adedb385c39effff9c9dd5767250f8c89"><div class="ttname"><a href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">_RemminaSSH::password</a></div><div class="ttdeci">gchar * password</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00068">remmina_ssh.h:68</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a1500d65d1f0751812f237c1cb4d15188"><div class="ttname"><a href="remmina__ssh_8h.html#a1500d65d1f0751812f237c1cb4d15188">remmina_sftp_new_from_ssh</a></div><div class="ttdeci">RemminaSFTP * remmina_sftp_new_from_ssh(RemminaSSH *ssh)</div></div>
<div class="ttc" id="struct___remmina_s_s_h_tunnel_html_aa9ab1684349da8bfd6b84cc135c053b3"><div class="ttname"><a href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">_RemminaSSHTunnel::sockets</a></div><div class="ttdeci">gint * sockets</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00154">remmina_ssh.h:154</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a4884356c195dcfb4ceacf641a1e74e66"><div class="ttname"><a href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a></div><div class="ttdeci">gint remmina_file_get_int(RemminaFile *remminafile, const gchar *setting, gint default_value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00603">remmina_file.c:603</a></div></div>
<div class="ttc" id="remmina__ssh_8c_html_a91225eab16154f145e4d3f30a011d13a"><div class="ttname"><a href="remmina__ssh_8c.html#a91225eab16154f145e4d3f30a011d13a">remmina_ssh_x11_connect_display</a></div><div class="ttdeci">static int remmina_ssh_x11_connect_display()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8c_source.html#l00387">remmina_ssh.c:387</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_af9f34b088c5af320708cf02dfc45d59e"><div class="ttname"><a href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">_RemminaSSH::privkeyfile</a></div><div class="ttdeci">gchar * privkeyfile</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00069">remmina_ssh.h:69</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_a46cdb47db9c0ce8c1ac267cb3d10bbb3"><div class="ttname"><a href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">_RemminaSSH::session</a></div><div class="ttdeci">ssh_session session</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00060">remmina_ssh.h:60</a></div></div>
<div class="ttc" id="remmina__ssh_8c_html_ab1ac2a91d14c557598f168f66ba130eb"><div class="ttname"><a href="remmina__ssh_8c.html#ab1ac2a91d14c557598f168f66ba130eb">channel_cb</a></div><div class="ttdeci">struct ssh_channel_callbacks_struct channel_cb</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8c_source.html#l00176">remmina_ssh.c:176</a></div></div>
<div class="ttc" id="remmina__ssh_8c_html_a672175c0933ab32fd1f84817c410c15b"><div class="ttname"><a href="remmina__ssh_8c.html#a672175c0933ab32fd1f84817c410c15b">remmina_ssh_x11_get_proto</a></div><div class="ttdeci">static int remmina_ssh_x11_get_proto(const char *display, char **_proto, char **_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8c_source.html#l00310">remmina_ssh.c:310</a></div></div>
diff --git a/public/remmina__ssh__plugin_8c.html b/public/remmina__ssh__plugin_8c.html
index 76e1bfc7a..9989d4c7e 100644
--- a/public/remmina__ssh__plugin_8c.html
+++ b/public/remmina__ssh__plugin_8c.html
@@ -1543,7 +1543,7 @@ FALSE and <a class="el" href="remmina__protocol__widget_8c.html#a76ad91e7f864869
<div class="ttc" id="remmina__ssh__plugin_8c_html_aaabfe48db4bcae99b7c2e30d37ff73a0"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#aaabfe48db4bcae99b7c2e30d37ff73a0">remmina_plugin_ssh_features</a></div><div class="ttdeci">static RemminaProtocolFeature remmina_plugin_ssh_features[]</div><div class="ttdoc">Array for available features. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01471">remmina_ssh_plugin.c:1471</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a01bb81cfc23add39c9260e888ef1d88f"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a01bb81cfc23add39c9260e888ef1d88f">remmina_plugin_ssh_open_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_ssh_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdoc">Initialize the main window properties and the pthread. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01288">remmina_ssh_plugin.c:1288</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a30ddbf13515b3bdad4e220d75b7912bf"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a30ddbf13515b3bdad4e220d75b7912bf">remmina_ssh_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_ssh_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01500">remmina_ssh_plugin.c:1500</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a62f9ea89d10bb2e375d70c9578ca95fd"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a62f9ea89d10bb2e375d70c9578ca95fd">remmina_plugin_ssh_init</a></div><div class="ttdeci">static void remmina_plugin_ssh_init(RemminaProtocolWidget *gp)</div><div class="ttdoc">Remmina SSH plugin initialization. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00942">remmina_ssh_plugin.c:942</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_ac5670df701b44384b5acd61aeac016dc"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#ac5670df701b44384b5acd61aeac016dc">remmina_plugin_ssh_call_feature</a></div><div class="ttdeci">static void remmina_plugin_ssh_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdoc">Functions to call when an entry in the Tool menu in the Remmina Connection Window is clicked...</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01337">remmina_ssh_plugin.c:1337</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a31cf1c896508adf4f8f43f70d8e8f599"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a31cf1c896508adf4f8f43f70d8e8f599">remmina_plugin_ssh_query_feature</a></div><div class="ttdeci">static gboolean remmina_plugin_ssh_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdoc">Not used by the plugin. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01314">remmina_ssh_plugin.c:1314</a></div></div>
@@ -1607,10 +1607,10 @@ FALSE and <a class="el" href="remmina__protocol__widget_8c.html#a76ad91e7f864869
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;ssh_color_scheme&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Terminal colour scheme&quot;</span>), FALSE, <a class="code" href="remmina__ssh__plugin_8c.html#add87ff58da9befc10131b00c00dbc8eb">ssh_terminal_palette</a>, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;ssh_charset&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Character set&quot;</span>), FALSE, <a class="code" href="remmina__ssh__plugin_8c.html#a8ebdfc8dcc1306424cbf1ed9dfd30c89">ssh_charset_list</a>, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_proxycommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH Proxy Command&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_kex_algorithms&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;KEX (Key Exchange) algorithms&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_ciphers&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Symmetric cipher client to server&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_hostkeytypes&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Preferred server host key types&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;sshlogfolder&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Folder for SSH session log&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Full path of an existing folder&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;sshlogname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Filename for SSH session log&quot;</span>), FALSE, NULL, <a class="code" href="remmina__ssh__plugin_8c.html#a41ec447057568be598d38975bfe016d2">log_tips</a> },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;sshlogenabled&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Log SSH session when exiting Remmina&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;sshsavesession&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Log SSH session asynchronously&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Saving the session asynchronously may have a notable performance impact&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;audiblebell&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Audible terminal bell&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;ssh_forward_x11&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH X11 Forwarding&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;ssh_compression&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH compression&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Don&#39;t remember passwords&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;ssh_stricthostkeycheck&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Strict host key checking&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;ssh_color_scheme&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Terminal colour scheme&quot;</span>), FALSE, <a class="code" href="remmina__ssh__plugin_8c.html#add87ff58da9befc10131b00c00dbc8eb">ssh_terminal_palette</a>, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;ssh_charset&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Character set&quot;</span>), FALSE, <a class="code" href="remmina__ssh__plugin_8c.html#a8ebdfc8dcc1306424cbf1ed9dfd30c89">ssh_charset_list</a>, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_proxycommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH Proxy Command&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_kex_algorithms&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;KEX (Key Exchange) algorithms&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_ciphers&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Symmetric cipher client to server&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;ssh_hostkeytypes&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Preferred server host key types&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;sshlogfolder&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Folder for SSH session log&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Full path of an existing folder&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;sshlogname&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Filename for SSH session log&quot;</span>), FALSE, NULL, <a class="code" href="remmina__ssh__plugin_8c.html#a41ec447057568be598d38975bfe016d2">log_tips</a> },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;sshlogenabled&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Log SSH session when exiting Remmina&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;sshsavesession&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Log SSH session asynchronously&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Saving the session asynchronously may have a notable performance impact&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;audiblebell&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Audible terminal bell&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;ssh_forward_x11&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH X11 Forwarding&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;ssh_compression&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH compression&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Don&#39;t remember passwords&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;ssh_stricthostkeycheck&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Strict host key checking&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a8ebdfc8dcc1306424cbf1ed9dfd30c89"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a8ebdfc8dcc1306424cbf1ed9dfd30c89">ssh_charset_list</a></div><div class="ttdeci">static gpointer ssh_charset_list[]</div><div class="ttdoc">Charset list. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01403">remmina_ssh_plugin.c:1403</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a41ec447057568be598d38975bfe016d2"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a41ec447057568be598d38975bfe016d2">log_tips</a></div><div class="ttdeci">static gchar log_tips[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01516">remmina_ssh_plugin.c:1516</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_add87ff58da9befc10131b00c00dbc8eb"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#add87ff58da9befc10131b00c00dbc8eb">ssh_terminal_palette</a></div><div class="ttdeci">static gpointer ssh_terminal_palette[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01455">remmina_ssh_plugin.c:1455</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
@@ -1653,11 +1653,11 @@ FALSE and <a class="el" href="remmina__protocol__widget_8c.html#a76ad91e7f864869
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, <span class="stringliteral">&quot;_ssh._tcp&quot;</span>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;ssh_auth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Authentication type&quot;</span>), FALSE, <a class="code" href="remmina__ssh__plugin_8c.html#ab69dae8eb9c3744fcf53a0f482b18f19">ssh_auth</a>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;User password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>, <span class="stringliteral">&quot;ssh_privatekey&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH identity file&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><span class="preprocessor">#if LIBSSH_VERSION_INT &gt;= SSH_VERSION_INT(0, 9, 0)</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>, <span class="stringliteral">&quot;ssh_certfile&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH certificate file&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><span class="preprocessor">#endif</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;ssh_passphrase&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password to unlock private key&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;run_line&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Opening command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;exec&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start-up background program&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_ab69dae8eb9c3744fcf53a0f482b18f19"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#ab69dae8eb9c3744fcf53a0f482b18f19">ssh_auth</a></div><div class="ttdeci">static gpointer ssh_auth[]</div><div class="ttdoc">Array of key/value pairs for SSH auth type libssh methods: </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01392">remmina_ssh_plugin.c:1392</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
diff --git a/public/remmina__ssh__plugin_8c_source.html b/public/remmina__ssh__plugin_8c_source.html
index 91fd8abc9..fcd9199e5 100644
--- a/public/remmina__ssh__plugin_8c_source.html
+++ b/public/remmina__ssh__plugin_8c_source.html
@@ -103,11 +103,11 @@ $(document).ready(function(){initNavTree('remmina__ssh__plugin_8c_source.html','
<div class="ttc" id="remmina__ssh_8h_html_ae0792ddb4adcaafefc1a4604cefdd8f4"><div class="ttname"><a href="remmina__ssh_8h.html#ae0792ddb4adcaafefc1a4604cefdd8f4">remmina_ssh_shell_new_from_ssh</a></div><div class="ttdeci">RemminaSSHShell * remmina_ssh_shell_new_from_ssh(RemminaSSH *ssh)</div></div>
<div class="ttc" id="struct___remmina_ssh_search_html_a8f9a64245acf9b02edac4fbbcfdedd02"><div class="ttname"><a href="struct___remmina_ssh_search.html#a8f9a64245acf9b02edac4fbbcfdedd02">_RemminaSshSearch::reveal_button</a></div><div class="ttdeci">GtkWidget * reveal_button</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00218">remmina_ssh_plugin.c:218</a></div></div>
<div class="ttc" id="struct___remmina_ssh_search_html_a73f856810a9ee2d9c58673e83ba9a4eb"><div class="ttname"><a href="struct___remmina_ssh_search.html#a73f856810a9ee2d9c58673e83ba9a4eb">_RemminaSshSearch::regex_pattern</a></div><div class="ttdeci">gchar * regex_pattern</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00224">remmina_ssh_plugin.c:224</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_a3aaebd7f03b7d8601818fabc46b787ed"><div class="ttname"><a href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">_RemminaSSH::error</a></div><div class="ttdeci">gchar * error</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00080">remmina_ssh.h:80</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a35503a42b9f5165b3b4ca64fd70f6dc3"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a35503a42b9f5165b3b4ca64fd70f6dc3">valid_color</a></div><div class="ttdeci">static gboolean valid_color(GdkRGBA const *color)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00250">remmina_ssh_plugin.c:250</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a94c885e9e17ce81804101a67dc52e1c6"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a94c885e9e17ce81804101a67dc52e1c6">jit_regex</a></div><div class="ttdeci">static void jit_regex(VteRegex *regex, char const *pattern)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00590">remmina_ssh_plugin.c:590</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a0ed21b1b674077ad1df05a1cb035f9c2"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a0ed21b1b674077ad1df05a1cb035f9c2">remmina_search_widget_update_regex</a></div><div class="ttdeci">static void remmina_search_widget_update_regex(RemminaPluginSshData *gpdata)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00628">remmina_ssh_plugin.c:628</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a893f0cfe2d694ab700975f4f427ee2f6"><div class="ttname"><a href="remmina__public_8c.html#a893f0cfe2d694ab700975f4f427ee2f6">remmina_public_send_notification</a></div><div class="ttdeci">void remmina_public_send_notification(const gchar *notification_id, const gchar *notification_title, const gchar *notification_message)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00639">remmina_public.c:639</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
@@ -189,13 +189,13 @@ $(document).ready(function(){initNavTree('remmina__ssh__plugin_8c_source.html','
<div class="ttc" id="structremmina__masterthread__exec__data_html_addc82d31b5441f2bf02630b9ddbe7fdb"><div class="ttname"><a href="structremmina__masterthread__exec__data.html#addc82d31b5441f2bf02630b9ddbe7fdb">remmina_masterthread_exec_data::vte_terminal_set_encoding_and_pty</a></div><div class="ttdeci">struct remmina_masterthread_exec_data::@12::@26 vte_terminal_set_encoding_and_pty</div></div>
<div class="ttc" id="remmina__ssh_8h_html_a30412e0b4302f5ae0b9be2749390a48d"><div class="ttname"><a href="remmina__ssh_8h.html#a30412e0b4302f5ae0b9be2749390a48d">remmina_ssh_shell_new_from_file</a></div><div class="ttdeci">RemminaSSHShell * remmina_ssh_shell_new_from_file(RemminaFile *remminafile)</div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a4639e47898939f893505f0a30993aead"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a4639e47898939f893505f0a30993aead">remmina_plugin_ssh_popup_ui</a></div><div class="ttdeci">void remmina_plugin_ssh_popup_ui(RemminaProtocolWidget *gp)</div><div class="ttdoc">Remmina SSH plugin terminal popup menu. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00827">remmina_ssh_plugin.c:827</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a4fcffcd3b4d288aa52087e48c78d6570"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a4fcffcd3b4d288aa52087e48c78d6570">remmina_plugin_ssh_vte_save_session</a></div><div class="ttdeci">void remmina_plugin_ssh_vte_save_session(GtkMenuItem *menuitem, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00539">remmina_ssh_plugin.c:539</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a879c265f2e8050e4e72a061ab3747ee1ad56c3878c4a651b51fdb3d0e8b9cebd7"><div class="ttname"><a href="remmina__ssh_8h.html#a879c265f2e8050e4e72a061ab3747ee1ad56c3878c4a651b51fdb3d0e8b9cebd7">REMMINA_SSH_AUTH_RECONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00115">remmina_ssh.h:115</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a901034949132f369eb34c4f1ded3a0a6"><div class="ttname"><a href="struct___remmina_pref.html#a901034949132f369eb34c4f1ded3a0a6">_RemminaPref::vte_shortcutkey_paste</a></div><div class="ttdeci">guint vte_shortcutkey_paste</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00205">remmina_pref.h:205</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a62f9ea89d10bb2e375d70c9578ca95fd"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a62f9ea89d10bb2e375d70c9578ca95fd">remmina_plugin_ssh_init</a></div><div class="ttdeci">static void remmina_plugin_ssh_init(RemminaProtocolWidget *gp)</div><div class="ttdoc">Remmina SSH plugin initialization. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00942">remmina_ssh_plugin.c:942</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_a24a8c38ab11389b860d0658812ff7bbc"><div class="ttname"><a href="struct___remmina_color_pref.html#a24a8c38ab11389b860d0658812ff7bbc">_RemminaColorPref::color13</a></div><div class="ttdeci">gchar * color13</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00128">remmina_pref.h:128</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a3cab806d9a2a069aa4446c30cbf41599"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a3cab806d9a2a069aa4446c30cbf41599">remmina_plugin_ssh</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin_ssh</div><div class="ttdoc">SSH Protocol plugin definition and features. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01563">remmina_ssh_plugin.c:1563</a></div></div>
@@ -216,7 +216,7 @@ $(document).ready(function(){initNavTree('remmina__ssh__plugin_8c_source.html','
<div class="ttc" id="remmina__ssh__plugin_8c_html_a236a29beb2ea51daaeb01fe86d41807ca0a9ecf4938fe6dbd1cb74a7b23865a56"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a236a29beb2ea51daaeb01fe86d41807ca0a9ecf4938fe6dbd1cb74a7b23865a56">XTERM</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00081">remmina_ssh_plugin.c:81</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_aebc7525b6f72d22c1ce4df93c1576602"><div class="ttname"><a href="struct___remmina_s_s_h.html#aebc7525b6f72d22c1ce4df93c1576602">_RemminaSSH::tunnel_entrance_host</a></div><div class="ttdeci">gchar * tunnel_entrance_host</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00088">remmina_ssh.h:88</a></div></div>
<div class="ttc" id="remmina__masterthread__exec_8c_html_a14628c2470cac50e87916a70ea05c97d"><div class="ttname"><a href="remmina__masterthread__exec_8c.html#a14628c2470cac50e87916a70ea05c97d">remmina_masterthread_exec_and_wait</a></div><div class="ttdeci">void remmina_masterthread_exec_and_wait(RemminaMTExecData *d)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__masterthread__exec_8c_source.html#l00125">remmina_masterthread_exec.c:125</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_adf8c8f3dd7fa5412d8c580668cc36146"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#adf8c8f3dd7fa5412d8c580668cc36146">remmina_plugin_ssh_vte_paste_clipboard</a></div><div class="ttdeci">void remmina_plugin_ssh_vte_paste_clipboard(GtkMenuItem *menuitem, gpointer vte)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00532">remmina_ssh_plugin.c:532</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_ab1a62e7322f9795828be8261f00a72b9"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#ab1a62e7322f9795828be8261f00a72b9">remmina_search_widget_search_backward</a></div><div class="ttdeci">static void remmina_search_widget_search_backward(RemminaPluginSshData *gpdata)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00704">remmina_ssh_plugin.c:704</a></div></div>
@@ -253,7 +253,7 @@ $(document).ready(function(){initNavTree('remmina__ssh__plugin_8c_source.html','
<div class="ttc" id="remmina__ssh__plugin_8c_html_afebc284e31a21ecc0316baf2115aa99f"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#afebc284e31a21ecc0316baf2115aa99f">solarized_dark_palette</a></div><div class="ttdeci">const GdkRGBA solarized_dark_palette[PALETTE_SIZE]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00144">remmina_ssh_plugin.c:144</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a236a29beb2ea51daaeb01fe86d41807ca945d6010d321d9fe75cbba7b6f37f3b5"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a236a29beb2ea51daaeb01fe86d41807ca945d6010d321d9fe75cbba7b6f37f3b5">CUSTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00081">remmina_ssh_plugin.c:81</a></div></div>
<div class="ttc" id="struct___remmina_ssh_search_html_ad2be1b094ba3d2e65bea1cbd5bc948e0"><div class="ttname"><a href="struct___remmina_ssh_search.html#ad2be1b094ba3d2e65bea1cbd5bc948e0">_RemminaSshSearch::match_case_checkbutton</a></div><div class="ttdeci">GtkToggleButton * match_case_checkbutton</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00214">remmina_ssh_plugin.c:214</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a258d391bcfff1409d27bee0743aec6c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a258d391bcfff1409d27bee0743aec6c1">_RemminaPluginService::protocol_plugin_set_height</a></div><div class="ttdeci">void(* protocol_plugin_set_height)(RemminaProtocolWidget *gp, gint height)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00171">plugin.h:171</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a7bf273dcf4cc7f985727150f15fa9046"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a7bf273dcf4cc7f985727150f15fa9046">remmina_plugin_ssh_on_focus_in</a></div><div class="ttdeci">static gboolean remmina_plugin_ssh_on_focus_in(GtkWidget *widget, GdkEventFocus *event, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l00439">remmina_ssh_plugin.c:439</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_a8c109e8479617a5e6da0fcaccf511c60"><div class="ttname"><a href="struct___remmina_color_pref.html#a8c109e8479617a5e6da0fcaccf511c60">_RemminaColorPref::color15</a></div><div class="ttdeci">gchar * color15</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00130">remmina_pref.h:130</a></div></div>
diff --git a/public/remmina__stats_8c_source.html b/public/remmina__stats_8c_source.html
index e497ae4ab..4e3aa9d37 100644
--- a/public/remmina__stats_8c_source.html
+++ b/public/remmina__stats_8c_source.html
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('remmina__stats_8c_source.html','');});
<div class="ttc" id="struct_profiles_data_html_a16267e0d71d796422278afdeba50c13b"><div class="ttname"><a href="struct_profiles_data.html#a16267e0d71d796422278afdeba50c13b">ProfilesData::datestr</a></div><div class="ttdeci">gchar datestr</div><div class="ttdef"><b>Definition:</b> <a href="remmina__stats_8c_source.html#l00170">remmina_stats.c:170</a></div></div>
<div class="ttc" id="struct_profiles_data_html"><div class="ttname"><a href="struct_profiles_data.html">ProfilesData</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__stats_8c_source.html#l00164">remmina_stats.c:164</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
-<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00609">remmina_plugin_manager.c:609</a></div></div>
+<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00611">remmina_plugin_manager.c:611</a></div></div>
<div class="ttc" id="struct_profiles_data_html_afc9e80a1835d8ec7e84ee74b82a0d680"><div class="ttname"><a href="struct_profiles_data.html#afc9e80a1835d8ec7e84ee74b82a0d680">ProfilesData::pcount</a></div><div class="ttdeci">gint pcount</div><div class="ttdoc">Date in string format in the proto_date hash table. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__stats_8c_source.html#l00169">remmina_stats.c:169</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a2123e14795b104f5fe8d77a4b7847261"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">_RemminaSecretPlugin::is_service_available</a></div><div class="ttdeci">gboolean(* is_service_available)(struct _RemminaSecretPlugin *instance)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00144">plugin.h:144</a></div></div>
<div class="ttc" id="struct_profiles_data_html_af82cb4649acce0ce21aefca9eb6430ef"><div class="ttname"><a href="struct_profiles_data.html#af82cb4649acce0ce21aefca9eb6430ef">ProfilesData::proto_count</a></div><div class="ttdeci">GHashTable * proto_count</div><div class="ttdef"><b>Definition:</b> <a href="remmina__stats_8c_source.html#l00165">remmina_stats.c:165</a></div></div>
diff --git a/public/search/all_12.js b/public/search/all_12.js
index 4e95b69d1..f5c69096a 100644
--- a/public/search/all_12.js
+++ b/public/search/all_12.js
@@ -311,12 +311,14 @@ var searchData=
['remmina_5ffile_5fdup_5ftemp_5fprotocol',['remmina_file_dup_temp_protocol',['../remmina__file_8c.html#a52a0986eaf54c9e606ce9cdf8bb57e60',1,'remmina_file_dup_temp_protocol(RemminaFile *remminafile, const gchar *new_protocol):&#160;remmina_file.c'],['../remmina__file_8h.html#a52a0986eaf54c9e606ce9cdf8bb57e60',1,'remmina_file_dup_temp_protocol(RemminaFile *remminafile, const gchar *new_protocol):&#160;remmina_file.c']]],
['remmina_5ffile_5feditor_2ec',['remmina_file_editor.c',['../remmina__file__editor_8c.html',1,'']]],
['remmina_5ffile_5feditor_2eh',['remmina_file_editor.h',['../remmina__file__editor_8h.html',1,'']]],
+ ['remmina_5ffile_5feditor_5fassistance_5fenabled_5fcheck_5fon_5ftoggled',['remmina_file_editor_assistance_enabled_check_on_toggled',['../remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fbrowse_5favahi',['remmina_file_editor_browse_avahi',['../remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fbrowse_5fresolution',['remmina_file_editor_browse_resolution',['../remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fbutton_5fon_5ftoggled',['remmina_file_editor_button_on_toggled',['../remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcheck_5fprofile',['remmina_file_editor_check_profile',['../remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257',1,'remmina_file_editor_check_profile(RemminaFileEditor *gfe):&#160;remmina_file_editor.c'],['../remmina__file__editor_8h.html#add382dd8f40444b928e78b293a86a257',1,'remmina_file_editor_check_profile(RemminaFileEditor *gfe):&#160;remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fclass_5finit',['remmina_file_editor_class_init',['../remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcreate_5fall_5fsettings',['remmina_file_editor_create_all_settings',['../remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38',1,'remmina_file_editor.c']]],
+ ['remmina_5ffile_5feditor_5fcreate_5fassistance',['remmina_file_editor_create_assistance',['../remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcreate_5fbehavior_5ftab',['remmina_file_editor_create_behavior_tab',['../remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcreate_5fcheck',['remmina_file_editor_create_check',['../remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcreate_5fchooser',['remmina_file_editor_create_chooser',['../remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa',1,'remmina_file_editor.c']]],
@@ -1001,6 +1003,7 @@ var searchData=
['remmina_5fprotocol_5fplugin_5fsignal_5fconnection_5fopened_5fwrapper',['remmina_protocol_plugin_signal_connection_opened_wrapper',['../python__wrapper__remmina_8c.html#a2c26946525eaffe351b6153a6786153d',1,'python_wrapper_remmina.c']]],
['remmina_5fprotocol_5fquery_5ffeature_5fwrapper',['remmina_protocol_query_feature_wrapper',['../python__wrapper__protocol_8c.html#a5931951ae96e22e972c4a2a54c28af23',1,'python_wrapper_protocol.c']]],
['remmina_5fprotocol_5fsend_5fkeytrokes_5fwrapper',['remmina_protocol_send_keytrokes_wrapper',['../python__wrapper__protocol_8c.html#a162c9587302a7a4788f3c45329f56f0c',1,'python_wrapper_protocol.c']]],
+ ['remmina_5fprotocol_5fsetting_5ftype_5fassistance',['REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE',['../types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d',1,'types.h']]],
['remmina_5fprotocol_5fsetting_5ftype_5fcheck',['REMMINA_PROTOCOL_SETTING_TYPE_CHECK',['../types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f',1,'types.h']]],
['remmina_5fprotocol_5fsetting_5ftype_5fcombo',['REMMINA_PROTOCOL_SETTING_TYPE_COMBO',['../types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5',1,'types.h']]],
['remmina_5fprotocol_5fsetting_5ftype_5fdouble',['REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE',['../types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91',1,'types.h']]],
@@ -1297,7 +1300,7 @@ var searchData=
['remmina_5frdp_5fui_5fcursor',['REMMINA_RDP_UI_CURSOR',['../rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072ac32b00c17604d850f95b8117c419dcfe',1,'rdp_plugin.h']]],
['remmina_5frdp_5fui_5fevent',['REMMINA_RDP_UI_EVENT',['../rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072aa5f6f338ffaa4bed53b225cf54b50000',1,'rdp_plugin.h']]],
['remmina_5frdp_5fui_5fevent_5fdestroy_5fcairo_5fsurface',['REMMINA_RDP_UI_EVENT_DESTROY_CAIRO_SURFACE',['../rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35ad2dd5f6251de0ac7afe2f962c829aa48',1,'REMMINA_RDP_UI_EVENT_DESTROY_CAIRO_SURFACE():&#160;rdp_plugin.h'],['../rdp__event_8c.html#acd5f1bd57553006fdbc60d62af433e31',1,'remmina_rdp_ui_event_destroy_cairo_surface(RemminaProtocolWidget *gp, RemminaPluginRdpUiObject *ui):&#160;rdp_event.c']]],
- ['remmina_5frdp_5fui_5fevent_5fupdate_5fscale',['remmina_rdp_ui_event_update_scale',['../rdp__event_8c.html#ae0e0d42524cb165cd6d26553c104dbde',1,'remmina_rdp_ui_event_update_scale(RemminaProtocolWidget *gp, RemminaPluginRdpUiObject *ui):&#160;rdp_event.c'],['../rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35a5bec41fd19576fc5c3e397366461dfe4',1,'REMMINA_RDP_UI_EVENT_UPDATE_SCALE():&#160;rdp_plugin.h']]],
+ ['remmina_5frdp_5fui_5fevent_5fupdate_5fscale',['REMMINA_RDP_UI_EVENT_UPDATE_SCALE',['../rdp__plugin_8h.html#a70cc17b1d3603d036f962a0ae8496b35a5bec41fd19576fc5c3e397366461dfe4',1,'REMMINA_RDP_UI_EVENT_UPDATE_SCALE():&#160;rdp_plugin.h'],['../rdp__event_8c.html#ae0e0d42524cb165cd6d26553c104dbde',1,'remmina_rdp_ui_event_update_scale(RemminaProtocolWidget *gp, RemminaPluginRdpUiObject *ui):&#160;rdp_event.c']]],
['remmina_5frdp_5fui_5fnocodec',['REMMINA_RDP_UI_NOCODEC',['../rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072a96cf99f0ed1b7e1a798ebb358eff0d1b',1,'rdp_plugin.h']]],
['remmina_5frdp_5fui_5freconnect_5fprogress',['REMMINA_RDP_UI_RECONNECT_PROGRESS',['../rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072a5b2f8ce562cd1720b7a985f3a7c15ea7',1,'rdp_plugin.h']]],
['remmina_5frdp_5fui_5fupdate_5fregions',['REMMINA_RDP_UI_UPDATE_REGIONS',['../rdp__plugin_8h.html#a1e2313a63a9cfd208ab722cc1e0ee072acd86c5f1b34b0d7168c94892cfd2cb9e',1,'rdp_plugin.h']]],
@@ -1425,8 +1428,8 @@ var searchData=
['remmina_5fssh_5ftunnel_5fcancel_5faccept',['remmina_ssh_tunnel_cancel_accept',['../remmina__ssh_8h.html#ae9f52b1a3a545acae8c93007e20ec909',1,'remmina_ssh.h']]],
['remmina_5fssh_5ftunnel_5ffree',['remmina_ssh_tunnel_free',['../remmina__ssh_8h.html#a223f8dd7a678bcec2ece40a2d8f7ea06',1,'remmina_ssh.h']]],
['remmina_5fssh_5ftunnel_5fnew_5ffrom_5ffile',['remmina_ssh_tunnel_new_from_file',['../remmina__ssh_8h.html#abf04fd329ab77bbd4f6aa1cb1eaa349d',1,'remmina_ssh.h']]],
- ['remmina_5fssh_5ftunnel_5fopen',['REMMINA_SSH_TUNNEL_OPEN',['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14',1,'REMMINA_SSH_TUNNEL_OPEN():&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53',1,'remmina_ssh_tunnel_open(RemminaSSHTunnel *tunnel, const gchar *host, gint port, gint local_port):&#160;remmina_ssh.h']]],
- ['remmina_5fssh_5ftunnel_5freverse',['remmina_ssh_tunnel_reverse',['../remmina__ssh_8h.html#ae47c8270267b02b9c0ff5b36074101c2',1,'remmina_ssh_tunnel_reverse(RemminaSSHTunnel *tunnel, gint port, gint local_port):&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798ae14c0d50235951946ca18866a1329459',1,'REMMINA_SSH_TUNNEL_REVERSE():&#160;remmina_ssh.h']]],
+ ['remmina_5fssh_5ftunnel_5fopen',['remmina_ssh_tunnel_open',['../remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53',1,'remmina_ssh_tunnel_open(RemminaSSHTunnel *tunnel, const gchar *host, gint port, gint local_port):&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14',1,'REMMINA_SSH_TUNNEL_OPEN():&#160;remmina_ssh.h']]],
+ ['remmina_5fssh_5ftunnel_5freverse',['REMMINA_SSH_TUNNEL_REVERSE',['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798ae14c0d50235951946ca18866a1329459',1,'REMMINA_SSH_TUNNEL_REVERSE():&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#ae47c8270267b02b9c0ff5b36074101c2',1,'remmina_ssh_tunnel_reverse(RemminaSSHTunnel *tunnel, gint port, gint local_port):&#160;remmina_ssh.h']]],
['remmina_5fssh_5ftunnel_5fterminated',['remmina_ssh_tunnel_terminated',['../remmina__ssh_8h.html#aeb20d31243a4d30e469a34fe01684e38',1,'remmina_ssh.h']]],
['remmina_5fssh_5ftunnel_5fxport',['remmina_ssh_tunnel_xport',['../remmina__ssh_8h.html#aba49db2ced40e21e8adfad69dcfda2c4',1,'remmina_ssh_tunnel_xport(RemminaSSHTunnel *tunnel, gboolean bindlocalhost):&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798afbca41cd7b252c2594e1d53cd081b326',1,'REMMINA_SSH_TUNNEL_XPORT():&#160;remmina_ssh.h']]],
['remmina_5fssh_5funconvert',['remmina_ssh_unconvert',['../remmina__ssh_8h.html#aeccf94afb57bcad37b4241d45fcb3fea',1,'remmina_ssh.h']]],
diff --git a/public/search/enumvalues_9.js b/public/search/enumvalues_9.js
index 7cbcd4f87..c3068209d 100644
--- a/public/search/enumvalues_9.js
+++ b/public/search/enumvalues_9.js
@@ -108,6 +108,7 @@ var searchData=
['remmina_5fprotocol_5ffeature_5ftype_5fscale',['REMMINA_PROTOCOL_FEATURE_TYPE_SCALE',['../types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f',1,'types.h']]],
['remmina_5fprotocol_5ffeature_5ftype_5ftool',['REMMINA_PROTOCOL_FEATURE_TYPE_TOOL',['../types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507',1,'types.h']]],
['remmina_5fprotocol_5ffeature_5ftype_5funfocus',['REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS',['../types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1',1,'types.h']]],
+ ['remmina_5fprotocol_5fsetting_5ftype_5fassistance',['REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE',['../types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d',1,'types.h']]],
['remmina_5fprotocol_5fsetting_5ftype_5fcheck',['REMMINA_PROTOCOL_SETTING_TYPE_CHECK',['../types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f',1,'types.h']]],
['remmina_5fprotocol_5fsetting_5ftype_5fcombo',['REMMINA_PROTOCOL_SETTING_TYPE_COMBO',['../types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5',1,'types.h']]],
['remmina_5fprotocol_5fsetting_5ftype_5fdouble',['REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE',['../types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91',1,'types.h']]],
diff --git a/public/search/functions_11.js b/public/search/functions_11.js
index a70414aff..b82c58d80 100644
--- a/public/search/functions_11.js
+++ b/public/search/functions_11.js
@@ -190,12 +190,14 @@ var searchData=
['remmina_5ffile_5fdelete',['remmina_file_delete',['../remmina__file_8c.html#a55f66f2bb81bf427d6837e1adb7fe1d4',1,'remmina_file_delete(const gchar *filename):&#160;remmina_file.c'],['../remmina__file_8h.html#a55f66f2bb81bf427d6837e1adb7fe1d4',1,'remmina_file_delete(const gchar *filename):&#160;remmina_file.c']]],
['remmina_5ffile_5fdup',['remmina_file_dup',['../remmina__file_8c.html#a3fb992fced83e0f1c4e4e3c8d2206be5',1,'remmina_file_dup(RemminaFile *remminafile):&#160;remmina_file.c'],['../remmina__file_8h.html#a3fb992fced83e0f1c4e4e3c8d2206be5',1,'remmina_file_dup(RemminaFile *remminafile):&#160;remmina_file.c']]],
['remmina_5ffile_5fdup_5ftemp_5fprotocol',['remmina_file_dup_temp_protocol',['../remmina__file_8c.html#a52a0986eaf54c9e606ce9cdf8bb57e60',1,'remmina_file_dup_temp_protocol(RemminaFile *remminafile, const gchar *new_protocol):&#160;remmina_file.c'],['../remmina__file_8h.html#a52a0986eaf54c9e606ce9cdf8bb57e60',1,'remmina_file_dup_temp_protocol(RemminaFile *remminafile, const gchar *new_protocol):&#160;remmina_file.c']]],
+ ['remmina_5ffile_5feditor_5fassistance_5fenabled_5fcheck_5fon_5ftoggled',['remmina_file_editor_assistance_enabled_check_on_toggled',['../remmina__file__editor_8c.html#a3da83a35788891fa1fede4b063e1d0e6',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fbrowse_5favahi',['remmina_file_editor_browse_avahi',['../remmina__file__editor_8c.html#aa3acf0470349d706d15fa751e982fd05',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fbrowse_5fresolution',['remmina_file_editor_browse_resolution',['../remmina__file__editor_8c.html#a51b9fe336d9068ffc488ef55adc9eac4',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fbutton_5fon_5ftoggled',['remmina_file_editor_button_on_toggled',['../remmina__file__editor_8c.html#a112a0fd5bf7d5693b9cb717c850637cb',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcheck_5fprofile',['remmina_file_editor_check_profile',['../remmina__file__editor_8c.html#add382dd8f40444b928e78b293a86a257',1,'remmina_file_editor_check_profile(RemminaFileEditor *gfe):&#160;remmina_file_editor.c'],['../remmina__file__editor_8h.html#add382dd8f40444b928e78b293a86a257',1,'remmina_file_editor_check_profile(RemminaFileEditor *gfe):&#160;remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fclass_5finit',['remmina_file_editor_class_init',['../remmina__file__editor_8c.html#a7f1406c817183d78a801668a10d73e0b',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcreate_5fall_5fsettings',['remmina_file_editor_create_all_settings',['../remmina__file__editor_8c.html#a6415f73260076747c4f933af7f9f4b38',1,'remmina_file_editor.c']]],
+ ['remmina_5ffile_5feditor_5fcreate_5fassistance',['remmina_file_editor_create_assistance',['../remmina__file__editor_8c.html#a71dd793e231434cba784ae36be456586',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcreate_5fbehavior_5ftab',['remmina_file_editor_create_behavior_tab',['../remmina__file__editor_8c.html#a9bcaeec3ba26d31c6333f35fe1381a8c',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcreate_5fcheck',['remmina_file_editor_create_check',['../remmina__file__editor_8c.html#a2a31c93bd54489f8bb3c8fe0dff033d6',1,'remmina_file_editor.c']]],
['remmina_5ffile_5feditor_5fcreate_5fchooser',['remmina_file_editor_create_chooser',['../remmina__file__editor_8c.html#ab5d28ebef67a21099e99268bd6fa04aa',1,'remmina_file_editor.c']]],
diff --git a/public/spice__plugin_8c.html b/public/spice__plugin_8c.html
index 33416e4db..66803fa1b 100644
--- a/public/spice__plugin_8c.html
+++ b/public/spice__plugin_8c.html
@@ -1076,7 +1076,7 @@ Variables</h2></td></tr>
<div class="ttc" id="spice__plugin_8c_html_a96515e819c13b1eb4c4a1416df215317"><div class="ttname"><a href="spice__plugin_8c.html#a96515e819c13b1eb4c4a1416df215317">remmina_plugin_spice_keystroke</a></div><div class="ttdeci">static void remmina_plugin_spice_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00520">spice_plugin.c:520</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_a6365349678c9474a169dd505d322b81a"><div class="ttname"><a href="spice__plugin_8c.html#a6365349678c9474a169dd505d322b81a">remmina_plugin_spice_query_feature</a></div><div class="ttdeci">static gboolean remmina_plugin_spice_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00569">spice_plugin.c:569</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_aa613e255347fa4f0a7718dd3f96c6ad4"><div class="ttname"><a href="spice__plugin_8c.html#aa613e255347fa4f0a7718dd3f96c6ad4">remmina_plugin_spice_open_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_spice_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00147">spice_plugin.c:147</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_aa6772e43af47ffc62ab556770e3cb56c"><div class="ttname"><a href="spice__plugin_8c.html#aa6772e43af47ffc62ab556770e3cb56c">remmina_plugin_spice_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_spice_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00673">spice_plugin.c:673</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_ad4b4ee0d3b22a9a7b505819120fd5ab2"><div class="ttname"><a href="spice__plugin_8c.html#ad4b4ee0d3b22a9a7b505819120fd5ab2">remmina_plugin_spice_call_feature</a></div><div class="ttdeci">static void remmina_plugin_spice_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00576">spice_plugin.c:576</a></div></div>
@@ -1108,9 +1108,9 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"><span class="preprocessor">#ifdef SPICE_GTK_CHECK_VERSION</span></div><div class="line"><span class="preprocessor"># if SPICE_GTK_CHECK_VERSION(0, 35, 0)</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;videocodec&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Preferred video codec&quot;</span>), FALSE, <a class="code" href="spice__plugin_8c.html#ad3d2a519d7808abf0859980339259d80">videocodec_list</a>, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablegstvideooverlay&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off GStreamer overlay&quot;</span>), FALSE, NULL, <a class="code" href="spice__plugin_8c.html#a23fc9f6476b911deae789c91e7011b59">disablegstvideooverlay_tooltip</a>},</div><div class="line"><span class="preprocessor"># endif</span></div><div class="line"><span class="preprocessor"># if SPICE_GTK_CHECK_VERSION(0, 31, 0)</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;imagecompression&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Preferred image compression&quot;</span>), FALSE, <a class="code" href="spice__plugin_8c.html#ac43b776356fd0b110cad9433d05eeee2">imagecompression_list</a>, NULL},</div><div class="line"><span class="preprocessor"># endif</span></div><div class="line"><span class="preprocessor">#endif</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableclipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;No clipboard sync&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enableaudio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable audio channel&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;sharesmartcard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share smart card&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;viewonly&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;View only&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, TRUE, NULL, NULL}</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"><span class="preprocessor">#ifdef SPICE_GTK_CHECK_VERSION</span></div><div class="line"><span class="preprocessor"># if SPICE_GTK_CHECK_VERSION(0, 35, 0)</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;videocodec&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Preferred video codec&quot;</span>), FALSE, <a class="code" href="spice__plugin_8c.html#ad3d2a519d7808abf0859980339259d80">videocodec_list</a>, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablegstvideooverlay&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off GStreamer overlay&quot;</span>), FALSE, NULL, <a class="code" href="spice__plugin_8c.html#a23fc9f6476b911deae789c91e7011b59">disablegstvideooverlay_tooltip</a>},</div><div class="line"><span class="preprocessor"># endif</span></div><div class="line"><span class="preprocessor"># if SPICE_GTK_CHECK_VERSION(0, 31, 0)</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;imagecompression&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Preferred image compression&quot;</span>), FALSE, <a class="code" href="spice__plugin_8c.html#ac43b776356fd0b110cad9433d05eeee2">imagecompression_list</a>, NULL},</div><div class="line"><span class="preprocessor"># endif</span></div><div class="line"><span class="preprocessor">#endif</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableclipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;No clipboard sync&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enableaudio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable audio channel&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;sharesmartcard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share smart card&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;viewonly&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;View only&quot;</span>), TRUE, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, TRUE, NULL, NULL}</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_ac43b776356fd0b110cad9433d05eeee2"><div class="ttname"><a href="spice__plugin_8c.html#ac43b776356fd0b110cad9433d05eeee2">imagecompression_list</a></div><div class="ttdeci">static gpointer imagecompression_list[]</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00634">spice_plugin.c:634</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_a23fc9f6476b911deae789c91e7011b59"><div class="ttname"><a href="spice__plugin_8c.html#a23fc9f6476b911deae789c91e7011b59">disablegstvideooverlay_tooltip</a></div><div class="ttdeci">static gchar disablegstvideooverlay_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00651">spice_plugin.c:651</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
@@ -1140,10 +1140,10 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;User password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;usetls&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use TLS encryption&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>, <span class="stringliteral">&quot;cacert&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Server CA certificate&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;sharefolder&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Share folder&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
diff --git a/public/spice__plugin_8c_source.html b/public/spice__plugin_8c_source.html
index feef480d2..c6bb0c2e3 100644
--- a/public/spice__plugin_8c_source.html
+++ b/public/spice__plugin_8c_source.html
@@ -94,9 +94,9 @@ $(document).ready(function(){initNavTree('spice__plugin_8c_source.html','');});
<div class="ttc" id="spice__plugin_8c_html_a8b76789eb5de86da19c5524ed28c3875"><div class="ttname"><a href="spice__plugin_8c.html#a8b76789eb5de86da19c5524ed28c3875">remmina_plugin_spice_remove_list_option</a></div><div class="ttdeci">void remmina_plugin_spice_remove_list_option(gpointer *option_list, const gchar *option_to_remove)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00749">spice_plugin.c:749</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ae97f4052c4bbda628682ae071ada27ed"><div class="ttname"><a href="struct___remmina_plugin_service.html#ae97f4052c4bbda628682ae071ada27ed">_RemminaPluginService::remmina_protocol_widget_get_current_scale_mode</a></div><div class="ttdeci">RemminaScaleMode(* remmina_protocol_widget_get_current_scale_mode)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00172">plugin.h:172</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a7ac875d202f1ccd0ae85bb60ee3222c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">_RemminaPluginService::protocol_plugin_set_error</a></div><div class="ttdeci">void(* protocol_plugin_set_error)(RemminaProtocolWidget *gp, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00176">plugin.h:176</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00145">types.h:145</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_af8deff9dded79195228e3f05d145f92b"><div class="ttname"><a href="spice__plugin_8c.html#af8deff9dded79195228e3f05d145f92b">remmina_plugin_spice_is_lz4_supported</a></div><div class="ttdeci">gboolean remmina_plugin_spice_is_lz4_supported()</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00770">spice_plugin.c:770</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_aa156d1cebb38c8a65846c4d9c006012aac0cdff2ecbe3da84d4ed6af8fffd49e1"><div class="ttname"><a href="spice__plugin_8c.html#aa156d1cebb38c8a65846c4d9c006012aac0cdff2ecbe3da84d4ed6af8fffd49e1">REMMINA_PLUGIN_SPICE_FEATURE_PREF_VIEWONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00040">spice_plugin.c:40</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_a96515e819c13b1eb4c4a1416df215317"><div class="ttname"><a href="spice__plugin_8c.html#a96515e819c13b1eb4c4a1416df215317">remmina_plugin_spice_keystroke</a></div><div class="ttdeci">static void remmina_plugin_spice_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00520">spice_plugin.c:520</a></div></div>
@@ -126,12 +126,12 @@ $(document).ready(function(){initNavTree('spice__plugin_8c_source.html','');});
<div class="ttc" id="spice__plugin_8c_html_ac43b776356fd0b110cad9433d05eeee2"><div class="ttname"><a href="spice__plugin_8c.html#ac43b776356fd0b110cad9433d05eeee2">imagecompression_list</a></div><div class="ttdeci">static gpointer imagecompression_list[]</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00634">spice_plugin.c:634</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_aa129753441dbfb630cbdb92e447f1d1e"><div class="ttname"><a href="struct___remmina_plugin_service.html#aa129753441dbfb630cbdb92e447f1d1e">_RemminaPluginService::protocol_plugin_unlock_dynres</a></div><div class="ttdeci">void(* protocol_plugin_unlock_dynres)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00189">plugin.h:189</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_af2b857b2de1af3621f543b810f68b17b"><div class="ttname"><a href="struct___remmina_plugin_service.html#af2b857b2de1af3621f543b810f68b17b">_RemminaPluginService::protocol_plugin_init_get_savepassword</a></div><div class="ttdeci">gboolean(* protocol_plugin_init_get_savepassword)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00197">plugin.h:197</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_a4d5d7d8022476b79a9e4b517adefa9a4"><div class="ttname"><a href="spice__plugin_8c.html#a4d5d7d8022476b79a9e4b517adefa9a4">remmina_plugin_spice_select_usb_devices</a></div><div class="ttdeci">void remmina_plugin_spice_select_usb_devices(RemminaProtocolWidget *)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin__usb_8c_source.html#l00039">spice_plugin_usb.c:39</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a529cc64f67b16f13f0445add690a8df2"><div class="ttname"><a href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">_RemminaPluginService::register_plugin</a></div><div class="ttdeci">gboolean(* register_plugin)(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00166">plugin.h:166</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_aa613e255347fa4f0a7718dd3f96c6ad4"><div class="ttname"><a href="spice__plugin_8c.html#aa613e255347fa4f0a7718dd3f96c6ad4">remmina_plugin_spice_open_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_spice_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00147">spice_plugin.c:147</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_ae54d54d84d43e029308869ff0fdc967c"><div class="ttname"><a href="spice__plugin_8c.html#ae54d54d84d43e029308869ff0fdc967c">remmina_plugin_spice_file_transfer_new_cb</a></div><div class="ttdeci">void remmina_plugin_spice_file_transfer_new_cb(SpiceMainChannel *, SpiceFileTransferTask *, RemminaProtocolWidget *)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin__file__transfer_8c_source.html#l00056">spice_plugin_file_transfer.c:56</a></div></div>
@@ -142,14 +142,14 @@ $(document).ready(function(){initNavTree('spice__plugin_8c_source.html','');});
<div class="ttc" id="spice__plugin_8c_html_aa156d1cebb38c8a65846c4d9c006012aa67d7c8f0daf1509c7404eb0a9062bf28"><div class="ttname"><a href="spice__plugin_8c.html#aa156d1cebb38c8a65846c4d9c006012aa67d7c8f0daf1509c7404eb0a9062bf28">REMMINA_PLUGIN_SPICE_FEATURE_SCALE</a></div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00045">spice_plugin.c:45</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_af9b8103812d533694d6acd8536dee59c"><div class="ttname"><a href="spice__plugin_8c.html#af9b8103812d533694d6acd8536dee59c">remmina_plugin_spice_session_open_fd</a></div><div class="ttdeci">static gboolean remmina_plugin_spice_session_open_fd(RemminaProtocolWidget *gp, gint fd) __attribute__((unused))</div></div>
<div class="ttc" id="struct___remmina_plugin_spice_data_html_a1c88ad311d86fb0de1dc441150a7da02"><div class="ttname"><a href="struct___remmina_plugin_spice_data.html#a1c88ad311d86fb0de1dc441150a7da02">_RemminaPluginSpiceData::audio</a></div><div class="ttdeci">SpiceAudio * audio</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8h_source.html#l00077">spice_plugin.h:77</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_aa6772e43af47ffc62ab556770e3cb56c"><div class="ttname"><a href="spice__plugin_8c.html#aa6772e43af47ffc62ab556770e3cb56c">remmina_plugin_spice_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_spice_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00673">spice_plugin.c:673</a></div></div>
<div class="ttc" id="struct___remmina_plugin_spice_data_html_af3dc7bbb6fa01e8f707cbdfd1908b18c"><div class="ttname"><a href="struct___remmina_plugin_spice_data.html#af3dc7bbb6fa01e8f707cbdfd1908b18c">_RemminaPluginSpiceData::fd</a></div><div class="ttdeci">gint fd</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8h_source.html#l00083">spice_plugin.h:83</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_aa156d1cebb38c8a65846c4d9c006012aaebe753cb882aa4977fd65cf95608c48d"><div class="ttname"><a href="spice__plugin_8c.html#aa156d1cebb38c8a65846c4d9c006012aaebe753cb882aa4977fd65cf95608c48d">REMMINA_PLUGIN_SPICE_FEATURE_PREF_DISABLECLIPBOARD</a></div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00042">spice_plugin.c:42</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_a23fc9f6476b911deae789c91e7011b59"><div class="ttname"><a href="spice__plugin_8c.html#a23fc9f6476b911deae789c91e7011b59">disablegstvideooverlay_tooltip</a></div><div class="ttdeci">static gchar disablegstvideooverlay_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00651">spice_plugin.c:651</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ad98eaa3efc0214bc701dc66b5730e174"><div class="ttname"><a href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">_RemminaPluginService::protocol_plugin_init_get_password</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_password)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00195">plugin.h:195</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_ad4b4ee0d3b22a9a7b505819120fd5ab2"><div class="ttname"><a href="spice__plugin_8c.html#ad4b4ee0d3b22a9a7b505819120fd5ab2">remmina_plugin_spice_call_feature</a></div><div class="ttdeci">static void remmina_plugin_spice_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00576">spice_plugin.c:576</a></div></div>
@@ -159,7 +159,7 @@ $(document).ready(function(){initNavTree('spice__plugin_8c_source.html','');});
<div class="ttc" id="spice__plugin_8c_html_aa156d1cebb38c8a65846c4d9c006012aab8e58c2e2b8f0c94101c892ff98c4278"><div class="ttname"><a href="spice__plugin_8c.html#aa156d1cebb38c8a65846c4d9c006012aab8e58c2e2b8f0c94101c892ff98c4278">REMMINA_PLUGIN_SPICE_FEATURE_TOOL_SENDCTRLALTDEL</a></div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00043">spice_plugin.c:43</a></div></div>
<div class="ttc" id="struct___remmina_plugin_spice_data_html_a57a077aa61d1eb205cb23db22ffd891f"><div class="ttname"><a href="struct___remmina_plugin_spice_data.html#a57a077aa61d1eb205cb23db22ffd891f">_RemminaPluginSpiceData::main_channel</a></div><div class="ttdeci">SpiceMainChannel * main_channel</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8h_source.html#l00081">spice_plugin.h:81</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a4880fb57479708bc1cb47bf6b4dcabc3"><div class="ttname"><a href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">_RemminaPluginService::file_set_string</a></div><div class="ttdeci">void(* file_set_string)(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00218">plugin.h:218</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_af3dc7072fd3204a1231025c1ea664409"><div class="ttname"><a href="spice__plugin_8c.html#af3dc7072fd3204a1231025c1ea664409">remmina_plugin_spice_advanced_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_spice_advanced_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00692">spice_plugin.c:692</a></div></div>
<div class="ttc" id="spice__plugin_8c_html_a56e5020de11446dbc23f3480e313f208"><div class="ttname"><a href="spice__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a></div><div class="ttdeci">G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8c_source.html#l00808">spice_plugin.c:808</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ae95121f8f944c058d4f0683073f79183"><div class="ttname"><a href="struct___remmina_plugin_service.html#ae95121f8f944c058d4f0683073f79183">_RemminaPluginService::protocol_plugin_start_direct_tunnel</a></div><div class="ttdeci">gchar *(* protocol_plugin_start_direct_tunnel)(RemminaProtocolWidget *gp, gint default_port, gboolean port_plus)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00181">plugin.h:181</a></div></div>
diff --git a/public/spice__plugin_8h.html b/public/spice__plugin_8h.html
index 2a3613e23..bfd65fcfc 100644
--- a/public/spice__plugin_8h.html
+++ b/public/spice__plugin_8h.html
@@ -136,7 +136,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00111">111</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00112">112</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
diff --git a/public/spice__plugin_8h_source.html b/public/spice__plugin_8h_source.html
index c88d87a9a..2271343f7 100644
--- a/public/spice__plugin_8h_source.html
+++ b/public/spice__plugin_8h_source.html
@@ -87,7 +87,7 @@ $(document).ready(function(){initNavTree('spice__plugin_8h_source.html','');});
</div><!--header-->
<div class="contents">
<a href="spice__plugin_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2016-2018 Denis Ollier</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin_8h.html">common/remmina_plugin.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;spice-client.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifdef SPICE_GTK_CHECK_VERSION</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"># if SPICE_GTK_CHECK_VERSION(0, 31, 0)</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"># include &lt;spice-client-gtk.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"># else</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"># include &lt;spice-widget.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"># include &lt;usb-device-widget.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"># endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"># include &lt;spice-widget.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># include &lt;usb-device-widget.h&gt;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#define GET_PLUGIN_DATA(gp) (RemminaPluginSpiceData *)g_object_get_data(G_OBJECT(gp), &quot;plugin-data&quot;)</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">extern</span> <a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *<a class="code" href="spice__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_INFO(fmt, ...) \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> remmina_plugin_service-&gt;_remmina_info(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_MESSAGE(fmt, ...) \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> remmina_plugin_service-&gt;_remmina_message(__func, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_DEBUG(fmt, ...) \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> remmina_plugin_service-&gt;_remmina_debug(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_WARNING(fmt, ...) \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> remmina_plugin_service-&gt;_remmina_warning(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">/* This will intentionally crash Remmina */</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_ERROR(fmt, ...) \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> remmina_plugin_service-&gt;_remmina_error(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_CRITICAL(fmt, ...) \</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> remmina_plugin_service-&gt;_remmina_critical(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_AUDIT(fmt, ...) \</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> remmina_plugin_service-&gt;_remmina_audit(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html"> 76</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_plugin_spice_data.html">_RemminaPluginSpiceData</a> {</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#a1c88ad311d86fb0de1dc441150a7da02"> 77</a></span>&#160; SpiceAudio * <a class="code" href="struct___remmina_plugin_spice_data.html#a1c88ad311d86fb0de1dc441150a7da02">audio</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#a5f24bd5d68722f7e265c0d61c89257ad"> 78</a></span>&#160; SpiceDisplay * <a class="code" href="struct___remmina_plugin_spice_data.html#a5f24bd5d68722f7e265c0d61c89257ad">display</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#a71709da583c41e2eb47236fc94e310d6"> 79</a></span>&#160; SpiceDisplayChannel * <a class="code" href="struct___remmina_plugin_spice_data.html#a71709da583c41e2eb47236fc94e310d6">display_channel</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#a1420dc8738b8485e95441823b4157f69"> 80</a></span>&#160; SpiceGtkSession * <a class="code" href="struct___remmina_plugin_spice_data.html#a1420dc8738b8485e95441823b4157f69">gtk_session</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#a57a077aa61d1eb205cb23db22ffd891f"> 81</a></span>&#160; SpiceMainChannel * <a class="code" href="struct___remmina_plugin_spice_data.html#a57a077aa61d1eb205cb23db22ffd891f">main_channel</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#a8be20a82752da9a4f7790b3aa8a92633"> 82</a></span>&#160; SpiceSession * <a class="code" href="struct___remmina_plugin_spice_data.html#a8be20a82752da9a4f7790b3aa8a92633">session</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#af3dc7bbb6fa01e8f707cbdfd1908b18c"> 83</a></span>&#160; gint <a class="code" href="struct___remmina_plugin_spice_data.html#af3dc7bbb6fa01e8f707cbdfd1908b18c">fd</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#ifdef SPICE_GTK_CHECK_VERSION</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"># if SPICE_GTK_CHECK_VERSION(0, 31, 0)</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">/* key: SpiceFileTransferTask, value: RemminaPluginSpiceXferWidgets */</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#a712404956a8e5ca842dd290700250781"> 88</a></span>&#160; GHashTable * <a class="code" href="struct___remmina_plugin_spice_data.html#a712404956a8e5ca842dd290700250781">file_transfers</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_spice_data.html#a9207addf2a7b2fea9bd8b3e7916aa28e"> 89</a></span>&#160; GtkWidget * <a class="code" href="struct___remmina_plugin_spice_data.html#a9207addf2a7b2fea9bd8b3e7916aa28e">file_transfer_dialog</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"># endif </span><span class="comment">/* SPICE_GTK_CHECK_VERSION(0, 31, 0) */</span><span class="preprocessor"></span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SPICE_GTK_CHECK_VERSION */</span><span class="preprocessor"></span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;} <a class="code" href="spice__plugin_8h.html#a1e33d35ec5c4e619baf7c8cc737be368">RemminaPluginSpiceData</a>;</div><div class="ttc" id="struct___remmina_plugin_spice_data_html_a5f24bd5d68722f7e265c0d61c89257ad"><div class="ttname"><a href="struct___remmina_plugin_spice_data.html#a5f24bd5d68722f7e265c0d61c89257ad">_RemminaPluginSpiceData::display</a></div><div class="ttdeci">SpiceDisplay * display</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8h_source.html#l00078">spice_plugin.h:78</a></div></div>
-<div class="ttc" id="spice__plugin_8h_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="spice__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00111">rdp_plugin.c:111</a></div></div>
+<div class="ttc" id="spice__plugin_8h_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="spice__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00112">rdp_plugin.c:112</a></div></div>
<div class="ttc" id="remmina__plugin_8h_html"><div class="ttname"><a href="remmina__plugin_8h.html">remmina_plugin.h</a></div></div>
<div class="ttc" id="struct___remmina_plugin_spice_data_html_a71709da583c41e2eb47236fc94e310d6"><div class="ttname"><a href="struct___remmina_plugin_spice_data.html#a71709da583c41e2eb47236fc94e310d6">_RemminaPluginSpiceData::display_channel</a></div><div class="ttdeci">SpiceDisplayChannel * display_channel</div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8h_source.html#l00079">spice_plugin.h:79</a></div></div>
<div class="ttc" id="struct___remmina_plugin_spice_data_html"><div class="ttname"><a href="struct___remmina_plugin_spice_data.html">_RemminaPluginSpiceData</a></div><div class="ttdef"><b>Definition:</b> <a href="spice__plugin_8h_source.html#l00076">spice_plugin.h:76</a></div></div>
diff --git a/public/struct___remmina_protocol_setting.html b/public/struct___remmina_protocol_setting.html
index ad38ac7fe..17b5381d2 100644
--- a/public/struct___remmina_protocol_setting.html
+++ b/public/struct___remmina_protocol_setting.html
@@ -112,7 +112,7 @@ Data Fields</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00116">116</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00117">117</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="ab434990a6fe70b7e8a4a8b11129527a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab434990a6fe70b7e8a4a8b11129527a6">&#9670;&nbsp;</a></span>compact</h2>
@@ -126,7 +126,7 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00120">120</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00121">121</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -142,7 +142,7 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00119">119</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00120">120</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -158,7 +158,7 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00118">118</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00119">119</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -174,7 +174,7 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00121">121</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00122">122</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -190,7 +190,7 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00122">122</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00123">123</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -206,7 +206,7 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00117">117</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00118">118</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -222,7 +222,7 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00124">124</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00125">125</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -238,7 +238,7 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00123">123</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00124">124</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
diff --git a/public/types_8h.html b/public/types_8h.html
index 27e033110..3e8857b21 100644
--- a/public/types_8h.html
+++ b/public/types_8h.html
@@ -155,17 +155,18 @@ Enumerations</h2></td></tr>
<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>,
<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>,
<br />
-&#160;&#160;<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>,
+&#160;&#160;<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a>,
+<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>,
<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>,
<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a>,
-<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>,
<br />
-&#160;&#160;<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>,
+&#160;&#160;<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>,
+<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>,
<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>,
<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>,
-<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a>,
<br />
-&#160;&#160;<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a>,
+&#160;&#160;<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a>,
+<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a>,
<a class="el" href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a>
<br />
}</td></tr>
@@ -344,7 +345,7 @@ Enumerations</h2></td></tr>
<tr><td class="fieldname"><a id="a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920"></a>REMMINA_AUTHPWD_TYPE_SSH_PRIVKEY&#160;</td><td class="fielddoc"></td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00135">135</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00136">136</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -366,7 +367,7 @@ Enumerations</h2></td></tr>
<tr><td class="fieldname"><a id="a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"></a>REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD&#160;</td><td class="fielddoc"></td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00155">155</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00156">156</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -412,6 +413,7 @@ Enumerations</h2></td></tr>
<tr><td class="fieldname"><a id="aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"></a>REMMINA_PROTOCOL_SETTING_TYPE_SERVER&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"></a>REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"></a>REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d"></a>REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"></a>REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"></a>REMMINA_PROTOCOL_SETTING_TYPE_TEXT&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11"></a>REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA&#160;</td><td class="fielddoc"></td></tr>
@@ -447,7 +449,7 @@ Enumerations</h2></td></tr>
<tr><td class="fieldname"><a id="a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"></a>REMMINA_PROTOCOL_SSH_SETTING_SFTP&#160;</td><td class="fielddoc"></td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00127">127</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00128">128</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -469,7 +471,7 @@ Enumerations</h2></td></tr>
<tr><td class="fieldname"><a id="a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"></a>RES_USE_INITIAL_WINDOW_SIZE&#160;</td><td class="fielddoc"></td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00147">147</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00148">148</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
@@ -490,7 +492,7 @@ Enumerations</h2></td></tr>
<tr><td class="fieldname"><a id="aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"></a>REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES&#160;</td><td class="fielddoc"></td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00141">141</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="types_8h_source.html#l00142">142</a> of file <a class="el" href="types_8h_source.html">types.h</a>.</p>
</div>
</div>
diff --git a/public/types_8h.js b/public/types_8h.js
index 4e8c875e8..51d39ad44 100644
--- a/public/types_8h.js
+++ b/public/types_8h.js
@@ -37,6 +37,7 @@ var types_8h =
[ "REMMINA_PROTOCOL_SETTING_TYPE_SERVER", "types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92", null ],
[ "REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD", "types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa", null ],
[ "REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION", "types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba", null ],
+ [ "REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE", "types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d", null ],
[ "REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP", "types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425", null ],
[ "REMMINA_PROTOCOL_SETTING_TYPE_TEXT", "types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296", null ],
[ "REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA", "types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11", null ],
diff --git a/public/types_8h_source.html b/public/types_8h_source.html
index 797f4f04c..a2c37a91b 100644
--- a/public/types_8h_source.html
+++ b/public/types_8h_source.html
@@ -86,96 +86,97 @@ $(document).ready(function(){initNavTree('types_8h_source.html','');});
<div class="title">types.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;glib-object.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515"> 44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_file.html">_RemminaFile</a> <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5"> 46</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4"> 47</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4">REMMINA_PROTOCOL_FEATURE_TYPE_END</a>,</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527"> 48</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>,</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507"> 49</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>,</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1"> 50</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a>,</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f"> 51</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf"> 52</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a>,</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501"> 53</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a>,</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7"> 54</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;} <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define REMMINA_PROTOCOL_FEATURE_PREF_RADIO 1</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define REMMINA_PROTOCOL_FEATURE_PREF_CHECK 2</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288"> 60</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd"> 62</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd">REMMINA_TYPEHINT_STRING</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288af7ab6943dcd5d24c6f19733da16d0f18"> 63</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288af7ab6943dcd5d24c6f19733da16d0f18">REMMINA_TYPEHINT_SIGNED</a>,</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a50903e485f8d4a2c2f98d7dfe4be8047"> 64</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a50903e485f8d4a2c2f98d7dfe4be8047">REMMINA_TYPEHINT_UNSIGNED</a>,</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e"> 65</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e">REMMINA_TYPEHINT_BOOLEAN</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a46086c0047e2ca3b353bc6f0944fecd4"> 66</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a46086c0047e2ca3b353bc6f0944fecd4">REMMINA_TYPEHINT_CPOINTER</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a80694dd04b4a5f6b2c3af24e71851ce3"> 67</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a80694dd04b4a5f6b2c3af24e71851ce3">REMMINA_TYPEHINT_RAW</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a65727cbc0caeb3702cfa98f6c57d9718"> 68</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a65727cbc0caeb3702cfa98f6c57d9718">REMMINA_TYPEHINT_TUPLE</a>,</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440"> 69</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html"> 72</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a> {</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9"> 73</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a> <a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20"> 74</a></span>&#160; gint <a class="code" href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20">id</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952"> 75</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">opt1</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d"> 76</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">opt2</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190"> 77</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b"> 78</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a> <a class="code" href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b">opt1_type_hint</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7"> 79</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a> <a class="code" href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7">opt2_type_hint</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a9abdee80580cddd54405d0577e459c2c"> 80</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a> <a class="code" href="struct___remmina_protocol_feature.html#a9abdee80580cddd54405d0577e459c2c">opt3_type_hint</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;} <a class="code" href="types_8h.html#ade886ceb4d246765dc78cdc7fbabeb74">RemminaProtocolFeature</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html"> 83</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_plugin_screenshot_data.html">_RemminaPluginScreenshotData</a> {</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c"> 84</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * <a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d"> 85</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">bitsPerPixel</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44"> 86</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">bytesPerPixel</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6"> 87</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">width</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e"> 88</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">height</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;} <a class="code" href="types_8h.html#a8f1322421fba36f6efb1a01e0626b2b1">RemminaPluginScreenshotData</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="types_8h.html#ae8d4366a0a98ae5f9b20ead637e73ac8"> 92</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_protocol_widget_class.html">_RemminaProtocolWidgetClass</a> <a class="code" href="struct___remmina_protocol_widget_class.html">RemminaProtocolWidgetClass</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="types_8h.html#a3fc3247f5a12b842032241d0cdde9cf4"> 93</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a> <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="types_8h.html#a1ace68e95e55a30fcf8b991f52332501"> 94</a></span>&#160;<span class="keyword">typedef</span> gpointer <a class="code" href="types_8h.html#a1ace68e95e55a30fcf8b991f52332501">RemminaTunnelInitFunc</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="types_8h.html#afae2f546eaf9ef8a816a804e830055bf"> 95</a></span>&#160;<span class="keyword">typedef</span> gboolean (*<a class="code" href="types_8h.html#afae2f546eaf9ef8a816a804e830055bf">RemminaXPortTunnelInitFunc</a>) (<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, gint remotedisplay, <span class="keyword">const</span> gchar *server, gint port);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350"> 97</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"> 98</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"> 100</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>,</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"> 101</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>,</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"> 102</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>,</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"> 103</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"> 105</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>,</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11"> 106</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a>,</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"> 107</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>,</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"> 108</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>,</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"> 109</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>,</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"> 110</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>,</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f"> 111</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a>,</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"> 112</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a>,</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91"> 113</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;} <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350">RemminaProtocolSettingType</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html"> 116</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a> {</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9"> 117</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350">RemminaProtocolSettingType</a> <a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857"> 118</a></span>&#160; <span class="keyword">const</span> gchar * <a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4"> 119</a></span>&#160; <span class="keyword">const</span> gchar * <a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6"> 120</a></span>&#160; gboolean <a class="code" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">compact</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d"> 121</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770"> 122</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5"> 123</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">validator_data</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3"> 124</a></span>&#160; GCallback <a class="code" href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">validator</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;} <a class="code" href="types_8h.html#a41c04d02e6a15ad17be8065453cc4933">RemminaProtocolSetting</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7"> 127</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"> 128</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>,</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"> 129</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>,</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371"> 130</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a>,</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"> 131</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>,</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"> 132</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;} <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5"> 135</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5aa2fd1ccd641986130bf9333b760d7ff2"> 136</a></span>&#160; <a class="code" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5aa2fd1ccd641986130bf9333b760d7ff2">REMMINA_AUTHPWD_TYPE_PROTOCOL</a>,</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a0f06852a7bb0c4d6611a5eb259b1130d"> 137</a></span>&#160; <a class="code" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a0f06852a7bb0c4d6611a5eb259b1130d">REMMINA_AUTHPWD_TYPE_SSH_PWD</a>,</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920"> 138</a></span>&#160; <a class="code" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920">REMMINA_AUTHPWD_TYPE_SSH_PRIVKEY</a></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;} <a class="code" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5">RemminaAuthpwdType</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de"> 141</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"> 142</a></span>&#160; <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a> = 0,</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"> 143</a></span>&#160; <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a> = 1,</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"> 144</a></span>&#160; <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a> = 2</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;} <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78a"> 147</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724"> 148</a></span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a> = -1,</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd"> 149</a></span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a> = 0,</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d"> 150</a></span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a> = 1,</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"> 151</a></span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a> = 2</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;} <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment">/* pflags field for remmina_protocol_widget_panel_auth() */</span></div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486"> 155</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"> 156</a></span>&#160; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a> = 1, <span class="comment">/* require username in auth panel */</span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"> 157</a></span>&#160; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a> = 2, <span class="comment">/* Username, if required, is readonly */</span></div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"> 158</a></span>&#160; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a> = 4, <span class="comment">/* require domain in auth panel */</span></div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"> 159</a></span>&#160; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a> = 8 <span class="comment">/* require savepassword switch in auth panel */</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;} <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;G_END_DECLS</div><div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a65727cbc0caeb3702cfa98f6c57d9718"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a65727cbc0caeb3702cfa98f6c57d9718">REMMINA_TYPEHINT_TUPLE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00068">types.h:68</a></div></div>
+<a href="types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;glib-object.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515"> 44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_file.html">_RemminaFile</a> <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5"> 46</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4"> 47</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4">REMMINA_PROTOCOL_FEATURE_TYPE_END</a>,</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527"> 48</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>,</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507"> 49</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>,</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1"> 50</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a>,</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f"> 51</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf"> 52</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a>,</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501"> 53</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a>,</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7"> 54</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;} <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define REMMINA_PROTOCOL_FEATURE_PREF_RADIO 1</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define REMMINA_PROTOCOL_FEATURE_PREF_CHECK 2</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288"> 60</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd"> 62</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd">REMMINA_TYPEHINT_STRING</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288af7ab6943dcd5d24c6f19733da16d0f18"> 63</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288af7ab6943dcd5d24c6f19733da16d0f18">REMMINA_TYPEHINT_SIGNED</a>,</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a50903e485f8d4a2c2f98d7dfe4be8047"> 64</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a50903e485f8d4a2c2f98d7dfe4be8047">REMMINA_TYPEHINT_UNSIGNED</a>,</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e"> 65</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e">REMMINA_TYPEHINT_BOOLEAN</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a46086c0047e2ca3b353bc6f0944fecd4"> 66</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a46086c0047e2ca3b353bc6f0944fecd4">REMMINA_TYPEHINT_CPOINTER</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a80694dd04b4a5f6b2c3af24e71851ce3"> 67</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a80694dd04b4a5f6b2c3af24e71851ce3">REMMINA_TYPEHINT_RAW</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a65727cbc0caeb3702cfa98f6c57d9718"> 68</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a65727cbc0caeb3702cfa98f6c57d9718">REMMINA_TYPEHINT_TUPLE</a>,</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440"> 69</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html"> 72</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a> {</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9"> 73</a></span>&#160; <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a> <a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20"> 74</a></span>&#160; gint <a class="code" href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20">id</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952"> 75</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">opt1</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d"> 76</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">opt2</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190"> 77</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b"> 78</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a> <a class="code" href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b">opt1_type_hint</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7"> 79</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a> <a class="code" href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7">opt2_type_hint</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_feature.html#a9abdee80580cddd54405d0577e459c2c"> 80</a></span>&#160; <a class="code" href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a> <a class="code" href="struct___remmina_protocol_feature.html#a9abdee80580cddd54405d0577e459c2c">opt3_type_hint</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;} <a class="code" href="types_8h.html#ade886ceb4d246765dc78cdc7fbabeb74">RemminaProtocolFeature</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html"> 83</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_plugin_screenshot_data.html">_RemminaPluginScreenshotData</a> {</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c"> 84</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * <a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d"> 85</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">bitsPerPixel</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44"> 86</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">bytesPerPixel</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6"> 87</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">width</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e"> 88</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">height</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;} <a class="code" href="types_8h.html#a8f1322421fba36f6efb1a01e0626b2b1">RemminaPluginScreenshotData</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="types_8h.html#ae8d4366a0a98ae5f9b20ead637e73ac8"> 92</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_protocol_widget_class.html">_RemminaProtocolWidgetClass</a> <a class="code" href="struct___remmina_protocol_widget_class.html">RemminaProtocolWidgetClass</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="types_8h.html#a3fc3247f5a12b842032241d0cdde9cf4"> 93</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a> <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="types_8h.html#a1ace68e95e55a30fcf8b991f52332501"> 94</a></span>&#160;<span class="keyword">typedef</span> gpointer <a class="code" href="types_8h.html#a1ace68e95e55a30fcf8b991f52332501">RemminaTunnelInitFunc</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="types_8h.html#afae2f546eaf9ef8a816a804e830055bf"> 95</a></span>&#160;<span class="keyword">typedef</span> gboolean (*<a class="code" href="types_8h.html#afae2f546eaf9ef8a816a804e830055bf">RemminaXPortTunnelInitFunc</a>) (<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, gint remotedisplay, <span class="keyword">const</span> gchar *server, gint port);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350"> 97</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"> 98</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"> 100</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>,</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"> 101</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>,</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"> 102</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>,</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d"> 103</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a>,</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"> 104</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"> 106</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>,</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11"> 107</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a>,</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"> 108</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>,</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"> 109</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>,</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"> 110</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>,</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"> 111</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>,</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f"> 112</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a>,</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"> 113</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a>,</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91"> 114</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;} <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350">RemminaProtocolSettingType</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html"> 117</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a> {</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9"> 118</a></span>&#160; <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350">RemminaProtocolSettingType</a> <a class="code" href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">type</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857"> 119</a></span>&#160; <span class="keyword">const</span> gchar * <a class="code" href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">name</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4"> 120</a></span>&#160; <span class="keyword">const</span> gchar * <a class="code" href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">label</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6"> 121</a></span>&#160; gboolean <a class="code" href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">compact</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d"> 122</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">opt1</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770"> 123</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">opt2</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5"> 124</a></span>&#160; gpointer <a class="code" href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">validator_data</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3"> 125</a></span>&#160; GCallback <a class="code" href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">validator</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;} <a class="code" href="types_8h.html#a41c04d02e6a15ad17be8065453cc4933">RemminaProtocolSetting</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7"> 128</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"> 129</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>,</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"> 130</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a>,</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371"> 131</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a>,</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"> 132</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a>,</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"> 133</a></span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;} <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5"> 136</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5aa2fd1ccd641986130bf9333b760d7ff2"> 137</a></span>&#160; <a class="code" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5aa2fd1ccd641986130bf9333b760d7ff2">REMMINA_AUTHPWD_TYPE_PROTOCOL</a>,</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a0f06852a7bb0c4d6611a5eb259b1130d"> 138</a></span>&#160; <a class="code" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a0f06852a7bb0c4d6611a5eb259b1130d">REMMINA_AUTHPWD_TYPE_SSH_PWD</a>,</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920"> 139</a></span>&#160; <a class="code" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920">REMMINA_AUTHPWD_TYPE_SSH_PRIVKEY</a></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;} <a class="code" href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5">RemminaAuthpwdType</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de"> 142</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"> 143</a></span>&#160; <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a> = 0,</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"> 144</a></span>&#160; <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a> = 1,</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"> 145</a></span>&#160; <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a> = 2</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;} <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78a"> 148</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724"> 149</a></span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a> = -1,</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd"> 150</a></span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a> = 0,</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d"> 151</a></span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a> = 1,</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"> 152</a></span>&#160; <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a> = 2</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;} <a class="code" href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">/* pflags field for remmina_protocol_widget_panel_auth() */</span></div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486"> 156</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"> 157</a></span>&#160; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a> = 1, <span class="comment">/* require username in auth panel */</span></div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"> 158</a></span>&#160; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a> = 2, <span class="comment">/* Username, if required, is readonly */</span></div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"> 159</a></span>&#160; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a> = 4, <span class="comment">/* require domain in auth panel */</span></div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"> 160</a></span>&#160; <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a> = 8 <span class="comment">/* require savepassword switch in auth panel */</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;} <a class="code" href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;G_END_DECLS</div><div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a65727cbc0caeb3702cfa98f6c57d9718"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a65727cbc0caeb3702cfa98f6c57d9718">REMMINA_TYPEHINT_TUPLE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00068">types.h:68</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a23e854b5f2eb0c8d3efa54cac0acb6cf">REMMINA_PROTOCOL_FEATURE_TYPE_DYNRESUPDATE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00052">types.h:52</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00112">types.h:112</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aadb70e5d52a6eccc1aaf6f1428c1fb11">REMMINA_PROTOCOL_SETTING_TYPE_TEXTAREA</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00113">types.h:113</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288">RemminaTypeHint</a></div><div class="ttdeci">RemminaTypeHint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00060">types.h:60</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
-<div class="ttc" id="types_8h_html_a72194e64fa2cf72405bda49a9ea3e8e5"><div class="ttname"><a href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5">RemminaAuthpwdType</a></div><div class="ttdeci">RemminaAuthpwdType</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00135">types.h:135</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a68b440d346168aadb6fd728ea394607f">REMMINA_PROTOCOL_SETTING_TYPE_FOLDER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00112">types.h:112</a></div></div>
+<div class="ttc" id="types_8h_html_a72194e64fa2cf72405bda49a9ea3e8e5"><div class="ttname"><a href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5">RemminaAuthpwdType</a></div><div class="ttdeci">RemminaAuthpwdType</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00136">types.h:136</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00145">types.h:145</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a1f63bf86b8f6da71137cf0a28ebf024a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME_READONLY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288af7ab6943dcd5d24c6f19733da16d0f18"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288af7ab6943dcd5d24c6f19733da16d0f18">REMMINA_TYPEHINT_SIGNED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00063">types.h:63</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a36b55faeba78528ac9708dfa66667e20"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a36b55faeba78528ac9708dfa66667e20">_RemminaProtocolFeature::id</a></div><div class="ttdeci">gint id</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00074">types.h:74</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00053">types.h:53</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a16a83c00dba8d929cce531d5a0181a2d">REMMINA_PROTOCOL_SETTING_TYPE_ASSISTANCE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a80694dd04b4a5f6b2c3af24e71851ce3"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a80694dd04b4a5f6b2c3af24e71851ce3">REMMINA_TYPEHINT_RAW</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00067">types.h:67</a></div></div>
<div class="ttc" id="types_8h_html_ade886ceb4d246765dc78cdc7fbabeb74"><div class="ttname"><a href="types_8h.html#ade886ceb4d246765dc78cdc7fbabeb74">RemminaProtocolFeature</a></div><div class="ttdeci">struct _RemminaProtocolFeature RemminaProtocolFeature</div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a50903e485f8d4a2c2f98d7dfe4be8047"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a50903e485f8d4a2c2f98d7dfe4be8047">REMMINA_TYPEHINT_UNSIGNED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00064">types.h:64</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00054">types.h:54</a></div></div>
-<div class="ttc" id="types_8h_html_a72194e64fa2cf72405bda49a9ea3e8e5aa2fd1ccd641986130bf9333b760d7ff2"><div class="ttname"><a href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5aa2fd1ccd641986130bf9333b760d7ff2">REMMINA_AUTHPWD_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00136">types.h:136</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="types_8h_html_a72194e64fa2cf72405bda49a9ea3e8e5aa2fd1ccd641986130bf9333b760d7ff2"><div class="ttname"><a href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5aa2fd1ccd641986130bf9333b760d7ff2">REMMINA_AUTHPWD_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00137">types.h:137</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350">RemminaProtocolSettingType</a></div><div class="ttdeci">RemminaProtocolSettingType</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00097">types.h:97</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a311d2a8dae8d3d7b9045b4b704f94fe4">REMMINA_PROTOCOL_FEATURE_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00047">types.h:47</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a55a12c6ed9ab21954208e0e83165f770"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">_RemminaProtocolSetting::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00122">types.h:122</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ab434990a6fe70b7e8a4a8b11129527a6"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">_RemminaProtocolSetting::compact</a></div><div class="ttdeci">gboolean compact</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00120">types.h:120</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78a"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a></div><div class="ttdeci">RemminaProtocolWidgetResolutionMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00147">types.h:147</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a55a12c6ed9ab21954208e0e83165f770"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a55a12c6ed9ab21954208e0e83165f770">_RemminaProtocolSetting::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00123">types.h:123</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ab434990a6fe70b7e8a4a8b11129527a6"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ab434990a6fe70b7e8a4a8b11129527a6">_RemminaProtocolSetting::compact</a></div><div class="ttdeci">gboolean compact</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00121">types.h:121</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78a"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78a">RemminaProtocolWidgetResolutionMode</a></div><div class="ttdeci">RemminaProtocolWidgetResolutionMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00148">types.h:148</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00049">types.h:49</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_a9274a9d62e527ca25683af512505242e"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">_RemminaPluginScreenshotData::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00088">types.h:88</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00048">types.h:48</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00051">types.h:51</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00150">types.h:150</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aaf5ff7e2cd480eb2acc5e1520e409202d">RES_USE_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00151">types.h:151</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a0f7883d48c9106883a2b7c9c021ebdcd">REMMINA_TYPEHINT_STRING</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00062">types.h:62</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a></div><div class="ttdeci">RemminaMessagePanelFlags</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00155">types.h:155</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a113aff9a0339ebe347ddf738d8c1f371">REMMINA_PROTOCOL_SSH_SETTING_SSH</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00131">types.h:131</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486">RemminaMessagePanelFlags</a></div><div class="ttdeci">RemminaMessagePanelFlags</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_aa0f78eb9b36ba248c2e368684903ae44"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">_RemminaPluginScreenshotData::bytesPerPixel</a></div><div class="ttdeci">int bytesPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00086">types.h:86</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ae1cc5b9d910f68aa5909e3cf483c1d1d"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">_RemminaProtocolSetting::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00121">types.h:121</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ae1cc5b9d910f68aa5909e3cf483c1d1d"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ae1cc5b9d910f68aa5909e3cf483c1d1d">_RemminaProtocolSetting::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00122">types.h:122</a></div></div>
<div class="ttc" id="types_8h_html_a8f1322421fba36f6efb1a01e0626b2b1"><div class="ttname"><a href="types_8h.html#a8f1322421fba36f6efb1a01e0626b2b1">RemminaPluginScreenshotData</a></div><div class="ttdeci">struct _RemminaPluginScreenshotData RemminaPluginScreenshotData</div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_ab5d115d8f9fc675f2419d38cdd424ce6"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">_RemminaPluginScreenshotData::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00087">types.h:87</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a1826baafd2d7b5dc8a009ef4fcad77e9"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">_RemminaProtocolFeature::type</a></div><div class="ttdeci">RemminaProtocolFeatureType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00073">types.h:73</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_ab3c15094a16418c5951c5382c8a44190"><div class="ttname"><a href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">_RemminaProtocolFeature::opt3</a></div><div class="ttdeci">gpointer opt3</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00077">types.h:77</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00151">types.h:151</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a></div><div class="ttdeci">RemminaProtocolSSHSetting</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00127">types.h:127</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa60de6896fa451ca072d23fab21dbfeef">RES_USE_INITIAL_WINDOW_SIZE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00152">types.h:152</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7">RemminaProtocolSSHSetting</a></div><div class="ttdeci">RemminaProtocolSSHSetting</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a4b8ffd6e32126a9c4d2074521279b12b"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a4b8ffd6e32126a9c4d2074521279b12b">_RemminaProtocolFeature::opt1_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt1_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00078">types.h:78</a></div></div>
-<div class="ttc" id="types_8h_html_a72194e64fa2cf72405bda49a9ea3e8e5a0f06852a7bb0c4d6611a5eb259b1130d"><div class="ttname"><a href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a0f06852a7bb0c4d6611a5eb259b1130d">REMMINA_AUTHPWD_TYPE_SSH_PWD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00137">types.h:137</a></div></div>
+<div class="ttc" id="types_8h_html_a72194e64fa2cf72405bda49a9ea3e8e5a0f06852a7bb0c4d6611a5eb259b1130d"><div class="ttname"><a href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a0f06852a7bb0c4d6611a5eb259b1130d">REMMINA_AUTHPWD_TYPE_SSH_PWD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00138">types.h:138</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_acc352444c31929a1ef7aee2a0e37827d"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">_RemminaPluginScreenshotData::bitsPerPixel</a></div><div class="ttdeci">int bitsPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00085">types.h:85</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6086b43049072a3a3245c4a45f43dbc5"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">_RemminaProtocolSetting::validator_data</a></div><div class="ttdeci">gpointer validator_data</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00123">types.h:123</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00132">types.h:132</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6086b43049072a3a3245c4a45f43dbc5"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6086b43049072a3a3245c4a45f43dbc5">_RemminaProtocolSetting::validator_data</a></div><div class="ttdeci">gpointer validator_data</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00124">types.h:124</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7aef0536e2d0186b8cb8d8ba7a4a1a51c3">REMMINA_PROTOCOL_SSH_SETTING_SFTP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00133">types.h:133</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a136d17c74813391126815f7c08d6697e">REMMINA_TYPEHINT_BOOLEAN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00065">types.h:65</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00113">types.h:113</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00149">types.h:149</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a25c4af05ecfc7053db40ed0997389b91">REMMINA_PROTOCOL_SETTING_TYPE_DOUBLE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00114">types.h:114</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aafe10effd553a16b9bac60b6d9b64c2cd">RES_USE_CUSTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00150">types.h:150</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a></div><div class="ttdeci">RemminaProtocolFeatureType</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00046">types.h:46</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_class_html"><div class="ttname"><a href="struct___remmina_protocol_widget_class.html">_RemminaProtocolWidgetClass</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00065">remmina_protocol_widget.h:65</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00102">types.h:102</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a94df87db138d4e44e81b3e6c99148ed3"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">_RemminaProtocolSetting::validator</a></div><div class="ttdeci">GCallback validator</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00124">types.h:124</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a94df87db138d4e44e81b3e6c99148ed3"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a94df87db138d4e44e81b3e6c99148ed3">_RemminaProtocolSetting::validator</a></div><div class="ttdeci">GCallback validator</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00125">types.h:125</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a006b0d6d883c6dd0da6c444991973ac7"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a006b0d6d883c6dd0da6c444991973ac7">_RemminaProtocolFeature::opt2_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt2_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00079">types.h:79</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_aa7ac5ec9d95867734619583a2049e952"><div class="ttname"><a href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">_RemminaProtocolFeature::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00075">types.h:75</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00158">types.h:158</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a46ac68f2dea71082d090ae63c5c4505c">REMMINA_MESSAGE_PANEL_FLAG_DOMAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_aab44850c13a7e5e20a02603ae173d53d"><div class="ttname"><a href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">_RemminaProtocolFeature::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00076">types.h:76</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00050">types.h:50</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00104">types.h:104</a></div></div>
<div class="ttc" id="types_8h_html_a1ace68e95e55a30fcf8b991f52332501"><div class="ttname"><a href="types_8h.html#a1ace68e95e55a30fcf8b991f52332501">RemminaTunnelInitFunc</a></div><div class="ttdeci">gpointer RemminaTunnelInitFunc</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00094">types.h:94</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288a46086c0047e2ca3b353bc6f0944fecd4"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288a46086c0047e2ca3b353bc6f0944fecd4">REMMINA_TYPEHINT_CPOINTER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00066">types.h:66</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="types_8h_html_ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440"><div class="ttname"><a href="types_8h.html#ab0b29804e77812ca42752bf4f379a288ab774d380798d305b72f4301143d3f440">REMMINA_TYPEHINT_UNDEFINED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00069">types.h:69</a></div></div>
<div class="ttc" id="types_8h_html_a41c04d02e6a15ad17be8065453cc4933"><div class="ttname"><a href="types_8h.html#a41c04d02e6a15ad17be8065453cc4933">RemminaProtocolSetting</a></div><div class="ttdeci">struct _RemminaProtocolSetting RemminaProtocolSetting</div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00131">types.h:131</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00132">types.h:132</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
-<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00148">types.h:148</a></div></div>
+<div class="ttc" id="types_8h_html_a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724"><div class="ttname"><a href="types_8h.html#a373ddef8221457d86c64830c26d3f78aa415945752acf7689df7cb602ae4e1724">RES_INVALID</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00149">types.h:149</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html">_RemminaPluginScreenshotData</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00083">types.h:83</a></div></div>
<div class="ttc" id="struct___remmina_file_html"><div class="ttname"><a href="struct___remmina_file.html">_RemminaFile</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8h_source.html#l00046">remmina_file.h:46</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_a757f692624e3e110eaa5bf0c05ac2a6c"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">_RemminaPluginScreenshotData::buffer</a></div><div class="ttdeci">unsigned char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00084">types.h:84</a></div></div>
-<div class="ttc" id="types_8h_html_a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920"><div class="ttname"><a href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920">REMMINA_AUTHPWD_TYPE_SSH_PRIVKEY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00138">types.h:138</a></div></div>
+<div class="ttc" id="types_8h_html_a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920"><div class="ttname"><a href="types_8h.html#a72194e64fa2cf72405bda49a9ea3e8e5a28a07360db0262bf2b4777bc5a36c920">REMMINA_AUTHPWD_TYPE_SSH_PRIVKEY</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00139">types.h:139</a></div></div>
<div class="ttc" id="types_8h_html_afae2f546eaf9ef8a816a804e830055bf"><div class="ttname"><a href="types_8h.html#afae2f546eaf9ef8a816a804e830055bf">RemminaXPortTunnelInitFunc</a></div><div class="ttdeci">gboolean(* RemminaXPortTunnelInitFunc)(RemminaProtocolWidget *gp, gint remotedisplay, const gchar *server, gint port)</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00095">types.h:95</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_a7a5b063deb126422c461203c074a3dc4"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">_RemminaProtocolSetting::label</a></div><div class="ttdeci">const gchar * label</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_a7a5b063deb126422c461203c074a3dc4"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a7a5b063deb126422c461203c074a3dc4">_RemminaProtocolSetting::label</a></div><div class="ttdeci">const gchar * label</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00120">types.h:120</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a9abdee80580cddd54405d0577e459c2c"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a9abdee80580cddd54405d0577e459c2c">_RemminaProtocolFeature::opt3_type_hint</a></div><div class="ttdeci">RemminaTypeHint opt3_type_hint</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00080">types.h:80</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/public/vnc__plugin_8c.html b/public/vnc__plugin_8c.html
index 84b27df22..fcb2b2a09 100644
--- a/public/vnc__plugin_8c.html
+++ b/public/vnc__plugin_8c.html
@@ -2711,7 +2711,7 @@ Variables</h2></td></tr>
<div class="ttc" id="vnc__plugin_8c_html_a8525912fbb407209875f84448abec8c7"><div class="ttname"><a href="vnc__plugin_8c.html#a8525912fbb407209875f84448abec8c7">remmina_plugin_vnc_advanced_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_vnc_advanced_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02128">vnc_plugin.c:2128</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a626a6a09f076b133df208d5bc04233b6"><div class="ttname"><a href="vnc__plugin_8c.html#a626a6a09f076b133df208d5bc04233b6">remmina_plugin_vnc_call_feature</a></div><div class="ttdeci">static void remmina_plugin_vnc_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01837">vnc_plugin.c:1837</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a7fa113e651e76230f66ca23135f2c688"><div class="ttname"><a href="vnc__plugin_8c.html#a7fa113e651e76230f66ca23135f2c688">remmina_plugin_vnc_close_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01804">vnc_plugin.c:1804</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a6497b38386d6de20157b0baf75dcbf44"><div class="ttname"><a href="vnc__plugin_8c.html#a6497b38386d6de20157b0baf75dcbf44">remmina_plugin_vnc_query_feature</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01823">vnc_plugin.c:1823</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a8b2de0c8917cafa414c0b9ed4c29aee3"><div class="ttname"><a href="vnc__plugin_8c.html#a8b2de0c8917cafa414c0b9ed4c29aee3">remmina_plugin_vnc_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_vnc_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02095">vnc_plugin.c:2095</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_aacfc4c3693cace69153a6ad95a69495e"><div class="ttname"><a href="vnc__plugin_8c.html#aacfc4c3693cace69153a6ad95a69495e">remmina_plugin_vnc_keystroke</a></div><div class="ttdeci">static void remmina_plugin_vnc_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01896">vnc_plugin.c:1896</a></div></div>
@@ -2739,8 +2739,8 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;encodings&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Override pre-set VNC encodings&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#a9573c48df84c26fb7f5fac785a0f7731">vncencodings_tooltip</a> },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;aspect_ratio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Dynamic resolution enforced aspec ratio&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#a052429df6b9d03301a607fb4a3e3203d">aspect_ratio_tooltip</a> },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;tightencoding&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Force tight encoding&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enabling this may help when the remote desktop looks scrambled&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablesmoothscrolling&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable smooth scrolling&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableserverbell&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Ignore remote bell messages&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableserverinput&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Prevent local interaction on the server&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;showcursor&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show remote cursor&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableclipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off clipboard sync&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableencryption&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off encryption&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;viewonly&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;View only&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;encodings&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Override pre-set VNC encodings&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#a9573c48df84c26fb7f5fac785a0f7731">vncencodings_tooltip</a> },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;aspect_ratio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Dynamic resolution enforced aspec ratio&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#a052429df6b9d03301a607fb4a3e3203d">aspect_ratio_tooltip</a> },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;tightencoding&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Force tight encoding&quot;</span>), TRUE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enabling this may help when the remote desktop looks scrambled&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablesmoothscrolling&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable smooth scrolling&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableserverbell&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Ignore remote bell messages&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableserverinput&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Prevent local interaction on the server&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;showcursor&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show remote cursor&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableclipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off clipboard sync&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disableencryption&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn off encryption&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;viewonly&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;View only&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a9573c48df84c26fb7f5fac785a0f7731"><div class="ttname"><a href="vnc__plugin_8c.html#a9573c48df84c26fb7f5fac785a0f7731">vncencodings_tooltip</a></div><div class="ttdeci">static gchar vncencodings_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02070">vnc_plugin.c:2070</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a052429df6b9d03301a607fb4a3e3203d"><div class="ttname"><a href="vnc__plugin_8c.html#a052429df6b9d03301a607fb4a3e3203d">aspect_ratio_tooltip</a></div><div class="ttdeci">static gchar aspect_ratio_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02063">vnc_plugin.c:2063</a></div></div>
@@ -2771,11 +2771,11 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, <span class="stringliteral">&quot;_rfb._tcp&quot;</span>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;proxy&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Repeater&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#a616ad35664d4a399f88a8a84ee89140d">repeater_tooltip</a>, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;User password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;colordepth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Colour depth&quot;</span>), FALSE, <a class="code" href="vnc__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;quality&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Quality&quot;</span>), FALSE, <a class="code" href="vnc__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a>, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>, <span class="stringliteral">&quot;keymap&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a616ad35664d4a399f88a8a84ee89140d"><div class="ttname"><a href="vnc__plugin_8c.html#a616ad35664d4a399f88a8a84ee89140d">repeater_tooltip</a></div><div class="ttdeci">static gchar repeater_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02046">vnc_plugin.c:2046</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a7d6c92b318e43b96efddbcaa9400c1f1"><div class="ttname"><a href="vnc__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a></div><div class="ttdeci">static gpointer colordepth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02028">vnc_plugin.c:2028</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00104">types.h:104</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a64254af45bb17a5a40a3a0383daa3fe7"><div class="ttname"><a href="vnc__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a></div><div class="ttdeci">static gpointer quality_list[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02037">vnc_plugin.c:2037</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
@@ -2868,7 +2868,7 @@ Variables</h2></td></tr>
<div class="ttc" id="vnc__plugin_8c_html_a626a6a09f076b133df208d5bc04233b6"><div class="ttname"><a href="vnc__plugin_8c.html#a626a6a09f076b133df208d5bc04233b6">remmina_plugin_vnc_call_feature</a></div><div class="ttdeci">static void remmina_plugin_vnc_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01837">vnc_plugin.c:1837</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a7fa113e651e76230f66ca23135f2c688"><div class="ttname"><a href="vnc__plugin_8c.html#a7fa113e651e76230f66ca23135f2c688">remmina_plugin_vnc_close_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01804">vnc_plugin.c:1804</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a6497b38386d6de20157b0baf75dcbf44"><div class="ttname"><a href="vnc__plugin_8c.html#a6497b38386d6de20157b0baf75dcbf44">remmina_plugin_vnc_query_feature</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01823">vnc_plugin.c:1823</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00131">types.h:131</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00132">types.h:132</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ac25782cb49710754854863dc9500bd57"><div class="ttname"><a href="vnc__plugin_8c.html#ac25782cb49710754854863dc9500bd57">remmina_plugin_vnci_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_vnci_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02108">vnc_plugin.c:2108</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_aacfc4c3693cace69153a6ad95a69495e"><div class="ttname"><a href="vnc__plugin_8c.html#aacfc4c3693cace69153a6ad95a69495e">remmina_plugin_vnc_keystroke</a></div><div class="ttdeci">static void remmina_plugin_vnc_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01896">vnc_plugin.c:1896</a></div></div>
</div><!-- fragment -->
@@ -2895,12 +2895,12 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;listenport&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Listen on port&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#a285701647495e19a7861c16b594d6c98">vnciport_tooltip</a>, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;User password&quot;</span>), FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;colordepth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Colour depth&quot;</span>), FALSE, <a class="code" href="vnc__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;quality&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Quality&quot;</span>), FALSE, <a class="code" href="vnc__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a>, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>, <span class="stringliteral">&quot;keymap&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL}</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;listenport&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Listen on port&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#a285701647495e19a7861c16b594d6c98">vnciport_tooltip</a>, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;User password&quot;</span>), FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;colordepth&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Colour depth&quot;</span>), FALSE, <a class="code" href="vnc__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a>, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a>, <span class="stringliteral">&quot;quality&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Quality&quot;</span>), FALSE, <a class="code" href="vnc__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a>, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a>, <span class="stringliteral">&quot;keymap&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL}</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a7d6c92b318e43b96efddbcaa9400c1f1"><div class="ttname"><a href="vnc__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a></div><div class="ttdeci">static gpointer colordepth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02028">vnc_plugin.c:2028</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a285701647495e19a7861c16b594d6c98"><div class="ttname"><a href="vnc__plugin_8c.html#a285701647495e19a7861c16b594d6c98">vnciport_tooltip</a></div><div class="ttdeci">static gchar vnciport_tooltip[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02055">vnc_plugin.c:2055</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00104">types.h:104</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a64254af45bb17a5a40a3a0383daa3fe7"><div class="ttname"><a href="vnc__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a></div><div class="ttdeci">static gpointer quality_list[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02037">vnc_plugin.c:2037</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
diff --git a/public/vnc__plugin_8c_source.html b/public/vnc__plugin_8c_source.html
index 786f56bad..a96cf6119 100644
--- a/public/vnc__plugin_8c_source.html
+++ b/public/vnc__plugin_8c_source.html
@@ -110,11 +110,11 @@ $(document).ready(function(){initNavTree('vnc__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_plugin_service_html_a7ac875d202f1ccd0ae85bb60ee3222c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">_RemminaPluginService::protocol_plugin_set_error</a></div><div class="ttdeci">void(* protocol_plugin_set_error)(RemminaProtocolWidget *gp, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00176">plugin.h:176</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_event_html_a79891d24c0e6257efceeefb3c10d8c65"><div class="ttname"><a href="struct___remmina_plugin_vnc_event.html#a79891d24c0e6257efceeefb3c10d8c65">_RemminaPluginVncEvent::text</a></div><div class="ttdeci">gchar * text</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00144">vnc_plugin.h:144</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_af77b4e3099a5d382aa4b840e4aecaadc"><div class="ttname"><a href="vnc__plugin_8c.html#af77b4e3099a5d382aa4b840e4aecaadc">remmina_plugin_vnc_rfb_updatefb</a></div><div class="ttdeci">static void remmina_plugin_vnc_rfb_updatefb(rfbClient *cl, int x, int y, int w, int h)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00685">vnc_plugin.c:685</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a093245037037f681c4ffe6356d916a02"><div class="ttname"><a href="vnc__plugin_8c.html#a093245037037f681c4ffe6356d916a02">remmina_plugin_vnc_main_loop</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_main_loop(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01116">vnc_plugin.c:1116</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ac432221a82ead6babe045cbf18061a0b"><div class="ttname"><a href="struct___remmina_plugin_service.html#ac432221a82ead6babe045cbf18061a0b">_RemminaPluginService::protocol_plugin_init_save_cred</a></div><div class="ttdeci">void(* protocol_plugin_init_save_cred)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00203">plugin.h:203</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00144">types.h:144</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00145">types.h:145</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab9cd44cc6ac7467e6c31c3d5fe77ac21"><div class="ttname"><a href="vnc__plugin_8c.html#ab9cd44cc6ac7467e6c31c3d5fe77ac21">remmina_plugin_vnc_features</a></div><div class="ttdeci">static const RemminaProtocolFeature remmina_plugin_vnc_features[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02146">vnc_plugin.c:2146</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a01923764292c3ab42dbcb43a9bb438a5"><div class="ttname"><a href="vnc__plugin_8c.html#a01923764292c3ab42dbcb43a9bb438a5">dot_cursor_y_hot</a></div><div class="ttdeci">static int dot_cursor_y_hot</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00060">vnc_plugin.c:60</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a7d6c92b318e43b96efddbcaa9400c1f1"><div class="ttname"><a href="vnc__plugin_8c.html#a7d6c92b318e43b96efddbcaa9400c1f1">colordepth_list</a></div><div class="ttdeci">static gpointer colordepth_list[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02028">vnc_plugin.c:2028</a></div></div>
@@ -203,7 +203,7 @@ $(document).ready(function(){initNavTree('vnc__plugin_8c_source.html','');});
<div class="ttc" id="vnc__plugin_8c_html_ac0d402aa12eeef76a267a3b27e85fbb0"><div class="ttname"><a href="vnc__plugin_8c.html#ac0d402aa12eeef76a267a3b27e85fbb0">remmina_plugin_vnc_scale_area</a></div><div class="ttdeci">static void remmina_plugin_vnc_scale_area(RemminaProtocolWidget *gp, gint *x, gint *y, gint *w, gint *h)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00197">vnc_plugin.c:197</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_coordinates_html_a33c99179134cf900b66103767766ed3a"><div class="ttname"><a href="struct___remmina_plugin_vnc_coordinates.html#a33c99179134cf900b66103767766ed3a">_RemminaPluginVncCoordinates::x</a></div><div class="ttdeci">gint x</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00150">vnc_plugin.h:150</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_data_html_a2958d10774cc6fc28a0bfa0b1c843095"><div class="ttname"><a href="struct___remmina_plugin_vnc_data.html#a2958d10774cc6fc28a0bfa0b1c843095">_RemminaPluginVncData::thread</a></div><div class="ttdeci">pthread_t thread</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00115">vnc_plugin.h:115</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7ab0449f571d03e46b99b301792a5d8e1a">REMMINA_PROTOCOL_SSH_SETTING_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00130">types.h:130</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_aae9ff42cb268892f94cf7ed3070d4b5a"><div class="ttname"><a href="vnc__plugin_8c.html#aae9ff42cb268892f94cf7ed3070d4b5a">remmina_plugin_vnc_chat_on_send</a></div><div class="ttdeci">static void remmina_plugin_vnc_chat_on_send(RemminaProtocolWidget *gp, const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01001">vnc_plugin.c:1001</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_abfb79da3d96ca4aa219eae9c73b0b53f"><div class="ttname"><a href="struct___remmina_plugin_service.html#abfb79da3d96ca4aa219eae9c73b0b53f">_RemminaPluginService::protocol_plugin_has_error</a></div><div class="ttdeci">gboolean(* protocol_plugin_has_error)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00175">plugin.h:175</a></div></div>
<div class="ttc" id="structon_main_thread__cb__data_html_ab5a747d3d76631e059d736ef286a6c38"><div class="ttname"><a href="structon_main_thread__cb__data.html#ab5a747d3d76631e059d736ef286a6c38">onMainThread_cb_data::func</a></div><div class="ttdeci">enum onMainThread_cb_data::@61 func</div></div>
@@ -212,7 +212,7 @@ $(document).ready(function(){initNavTree('vnc__plugin_8c_source.html','');});
<div class="ttc" id="vnc__plugin_8c_html_a14c13d425ace0c90144b0e486e6893b8"><div class="ttname"><a href="vnc__plugin_8c.html#a14c13d425ace0c90144b0e486e6893b8">remmina_plugin_vnc_main_thread</a></div><div class="ttdeci">static gpointer remmina_plugin_vnc_main_thread(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01391">vnc_plugin.c:1391</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_data_html_a625ea21fb2d92cb8489d3c9e5a2477ea"><div class="ttname"><a href="struct___remmina_plugin_vnc_data.html#a625ea21fb2d92cb8489d3c9e5a2477ea">_RemminaPluginVncData::vnc_event_pipe</a></div><div class="ttdeci">gint vnc_event_pipe[2]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00113">vnc_plugin.h:113</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00107">types.h:107</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a04da01eead7904a55d1c813950609b2d">REMMINA_PROTOCOL_SETTING_TYPE_SELECT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a4f528272dda8a3538cbdce39254ecc81"><div class="ttname"><a href="vnc__plugin_8c.html#a4f528272dda8a3538cbdce39254ecc81">remmina_plugin_vnc_on_key</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_on_key(GtkWidget *widget, GdkEventKey *event, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01568">vnc_plugin.c:1568</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ab8bbe7ce317cb9e97da8bf0e34459030"><div class="ttname"><a href="struct___remmina_plugin_service.html#ab8bbe7ce317cb9e97da8bf0e34459030">_RemminaPluginService::protocol_plugin_chat_open</a></div><div class="ttdeci">void(* protocol_plugin_chat_open)(RemminaProtocolWidget *gp, const gchar *name, void(*on_send)(RemminaProtocolWidget *gp, const gchar *text), void(*on_destroy)(RemminaProtocolWidget *gp))</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00209">plugin.h:209</a></div></div>
@@ -235,23 +235,23 @@ $(document).ready(function(){initNavTree('vnc__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_plugin_vnc_cuttext_param_html_a3acb975cf5fb33970f68bed221978a09"><div class="ttname"><a href="struct___remmina_plugin_vnc_cuttext_param.html#a3acb975cf5fb33970f68bed221978a09">_RemminaPluginVncCuttextParam::gp</a></div><div class="ttdeci">RemminaProtocolWidget * gp</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00372">vnc_plugin.c:372</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a9ba8e968998b64b3832e484a2ca7dfc1"><div class="ttname"><a href="vnc__plugin_8c.html#a9ba8e968998b64b3832e484a2ca7dfc1">onMainThread_cb</a></div><div class="ttdeci">static gboolean onMainThread_cb(struct onMainThread_cb_data *d)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00081">vnc_plugin.c:81</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_event_html_af3990101571bcf27e9f69fd5835c5115"><div class="ttname"><a href="struct___remmina_plugin_vnc_event.html#af3990101571bcf27e9f69fd5835c5115">_RemminaPluginVncEvent::event_data</a></div><div class="ttdeci">union _RemminaPluginVncEvent::@63 event_data</div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_data_html_a3c4413fdc098cf2dd9a1ff336c20356e"><div class="ttname"><a href="struct___remmina_plugin_vnc_data.html#a3c4413fdc098cf2dd9a1ff336c20356e">_RemminaPluginVncData::queuedraw_x</a></div><div class="ttdeci">gint queuedraw_x</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00094">vnc_plugin.h:94</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_data_html_a4047890129d7177dc5f813f2947e7a3c"><div class="ttname"><a href="struct___remmina_plugin_vnc_data.html#a4047890129d7177dc5f813f2947e7a3c">_RemminaPluginVncData::button_mask</a></div><div class="ttdeci">gint button_mask</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00107">vnc_plugin.h:107</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a734f491f20072acdcbebb41e36bafe2f"><div class="ttname"><a href="struct___remmina_plugin_service.html#a734f491f20072acdcbebb41e36bafe2f">_RemminaPluginService::protocol_plugin_desktop_resize</a></div><div class="ttdeci">void(* protocol_plugin_desktop_resize)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00190">plugin.h:190</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00143">types.h:143</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a4d672e305030849447b5b8b522d82242"><div class="ttname"><a href="vnc__plugin_8c.html#a4d672e305030849447b5b8b522d82242">remmina_plugin_vnc_open_chat</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_open_chat(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01036">vnc_plugin.c:1036</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_data_html_a33bc751b1d5728b624bfa57814504f90"><div class="ttname"><a href="struct___remmina_plugin_vnc_data.html#a33bc751b1d5728b624bfa57814504f90">_RemminaPluginVncData::client</a></div><div class="ttdeci">gpointer client</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00104">vnc_plugin.h:104</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
-<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
+<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00142">types.h:142</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a6497b38386d6de20157b0baf75dcbf44"><div class="ttname"><a href="vnc__plugin_8c.html#a6497b38386d6de20157b0baf75dcbf44">remmina_plugin_vnc_query_feature</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01823">vnc_plugin.c:1823</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a8648ba06e3c1b7093147ae9a1c576452"><div class="ttname"><a href="vnc__plugin_8c.html#a8648ba06e3c1b7093147ae9a1c576452">remmina_plugin_vnc_main</a></div><div class="ttdeci">static gboolean remmina_plugin_vnc_main(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l01172">vnc_plugin.c:1172</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_cuttext_param_html_a435d7b845e1d90c3bfbe5e5a7be19b30"><div class="ttname"><a href="struct___remmina_plugin_vnc_cuttext_param.html#a435d7b845e1d90c3bfbe5e5a7be19b30">_RemminaPluginVncCuttextParam::text</a></div><div class="ttdeci">gchar * text</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00373">vnc_plugin.c:373</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a8b2de0c8917cafa414c0b9ed4c29aee3"><div class="ttname"><a href="vnc__plugin_8c.html#a8b2de0c8917cafa414c0b9ed4c29aee3">remmina_plugin_vnc_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_vnc_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02095">vnc_plugin.c:2095</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_event_html_a9160c64481a1f56984c2f33785b2bf07"><div class="ttname"><a href="struct___remmina_plugin_vnc_event.html#a9160c64481a1f56984c2f33785b2bf07">_RemminaPluginVncEvent::pointer</a></div><div class="ttdeci">struct _RemminaPluginVncEvent::@63::@65 pointer</div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ac892dd297fae87868752a1f86e07937d"><div class="ttname"><a href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">_RemminaPluginService::protocol_plugin_init_get_username</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_username)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00194">plugin.h:194</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a781dfc8cb5371260bbf358fa7d9e3751"><div class="ttname"><a href="vnc__plugin_8c.html#a781dfc8cb5371260bbf358fa7d9e3751">check_for_endianness</a></div><div class="ttdeci">static gboolean check_for_endianness()</div><div class="ttdoc">Function check_for_endianness() returns 1, if architecture is little endian, 0 in case of big endian...</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00128">vnc_plugin.c:128</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ad98eaa3efc0214bc701dc66b5730e174"><div class="ttname"><a href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">_RemminaPluginService::protocol_plugin_init_get_password</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_password)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00195">plugin.h:195</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ade7041eba0e97ab146e2bc418982f100"><div class="ttname"><a href="vnc__plugin_8c.html#ade7041eba0e97ab146e2bc418982f100">dot_cursor_xpm</a></div><div class="ttdeci">static const gchar * dot_cursor_xpm[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00061">vnc_plugin.c:61</a></div></div>
@@ -260,7 +260,7 @@ $(document).ready(function(){initNavTree('vnc__plugin_8c_source.html','');});
<div class="ttc" id="vnc__plugin_8c_html_a91cf510208363f5678c65f420d2d0586"><div class="ttname"><a href="vnc__plugin_8c.html#a91cf510208363f5678c65f420d2d0586">remmina_plugin_vnc_rfb_allocfb</a></div><div class="ttdeci">static rfbBool remmina_plugin_vnc_rfb_allocfb(rfbClient *cl)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00491">vnc_plugin.c:491</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_data_html_aaee126db00e50ad613a6c8ae032ba3b2"><div class="ttname"><a href="struct___remmina_plugin_vnc_data.html#aaee126db00e50ad613a6c8ae032ba3b2">_RemminaPluginVncData::clipboard_timer</a></div><div class="ttdeci">GDateTime * clipboard_timer</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00098">vnc_plugin.h:98</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_coordinates_html"><div class="ttname"><a href="struct___remmina_plugin_vnc_coordinates.html">_RemminaPluginVncCoordinates</a></div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00149">vnc_plugin.h:149</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00103">types.h:103</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad9418344a7f597351e3cc5639be78425">REMMINA_PROTOCOL_SETTING_TYPE_KEYMAP</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00104">types.h:104</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_data_html_a8c3e9e03bc8b3ed04ee93a2c0281b5c6"><div class="ttname"><a href="struct___remmina_plugin_vnc_data.html#a8c3e9e03bc8b3ed04ee93a2c0281b5c6">_RemminaPluginVncData::queuedraw_handler</a></div><div class="ttdeci">guint queuedraw_handler</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00095">vnc_plugin.h:95</a></div></div>
<div class="ttc" id="struct___remmina_plugin_vnc_data_html_af834392929e0be100534bcc4a4d6df3c"><div class="ttname"><a href="struct___remmina_plugin_vnc_data.html#af834392929e0be100534bcc4a4d6df3c">_RemminaPluginVncData::clipboard_handler</a></div><div class="ttdeci">gulong clipboard_handler</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8h_source.html#l00097">vnc_plugin.h:97</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_aee8a8cf42ad03be152f4f5a751798383"><div class="ttname"><a href="vnc__plugin_8c.html#aee8a8cf42ad03be152f4f5a751798383">remmina_plugin_vnc_process_vnc_event</a></div><div class="ttdeci">static void remmina_plugin_vnc_process_vnc_event(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00324">vnc_plugin.c:324</a></div></div>
@@ -276,7 +276,7 @@ $(document).ready(function(){initNavTree('vnc__plugin_8c_source.html','');});
<div class="ttc" id="vnc__plugin_8c_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="vnc__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">static RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00057">vnc_plugin.c:57</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ae95121f8f944c058d4f0683073f79183"><div class="ttname"><a href="struct___remmina_plugin_service.html#ae95121f8f944c058d4f0683073f79183">_RemminaPluginService::protocol_plugin_start_direct_tunnel</a></div><div class="ttdeci">gchar *(* protocol_plugin_start_direct_tunnel)(RemminaProtocolWidget *gp, gint default_port, gboolean port_plus)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00181">plugin.h:181</a></div></div>
<div class="ttc" id="vnc__plugin_8h_html"><div class="ttname"><a href="vnc__plugin_8h.html">vnc_plugin.h</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00131">types.h:131</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a2f71ac2987eeec94430308f6f36840cd">REMMINA_PROTOCOL_SSH_SETTING_REVERSE_TUNNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00132">types.h:132</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a8d1c34496a6def21e5ad7d871cd581b5"><div class="ttname"><a href="struct___remmina_plugin_service.html#a8d1c34496a6def21e5ad7d871cd581b5">_RemminaPluginService::protocol_plugin_init_get_cacrl</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_cacrl)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00200">plugin.h:200</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_a64254af45bb17a5a40a3a0383daa3fe7"><div class="ttname"><a href="vnc__plugin_8c.html#a64254af45bb17a5a40a3a0383daa3fe7">quality_list</a></div><div class="ttdeci">static gpointer quality_list[]</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l02037">vnc_plugin.c:2037</a></div></div>
diff --git a/public/www__plugin_8c.html b/public/www__plugin_8c.html
index bd50d41f6..03cbe6e00 100644
--- a/public/www__plugin_8c.html
+++ b/public/www__plugin_8c.html
@@ -900,7 +900,7 @@ Variables</h2></td></tr>
<div class="ttc" id="www__plugin_8c_html_a3874a40164919bc5389d166df691bfdb"><div class="ttname"><a href="www__plugin_8c.html#a3874a40164919bc5389d166df691bfdb">remmina_plugin_www_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_www_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00905">www_plugin.c:905</a></div></div>
<div class="ttc" id="www__plugin_8c_html_ac6b72af8913086b2ec590a675473f2a1"><div class="ttname"><a href="www__plugin_8c.html#ac6b72af8913086b2ec590a675473f2a1">remmina_plugin_www_advanced_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_www_advanced_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00922">www_plugin.c:922</a></div></div>
<div class="ttc" id="www__plugin_8c_html_ae38b4f2efc412b6256221d9a33a03cd4"><div class="ttname"><a href="www__plugin_8c.html#ae38b4f2efc412b6256221d9a33a03cd4">remmina_www_query_feature</a></div><div class="ttdeci">static gboolean remmina_www_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00390">www_plugin.c:390</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="www__plugin_8c_source.html#l00951">951</a> of file <a class="el" href="www__plugin_8c_source.html">www_plugin.c</a>.</p>
@@ -941,8 +941,8 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;user-agent&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;User agent&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;proxy-url&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Proxy URL&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;E.g. https://example.org, socks://mysocks:1080&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-java&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on Java support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-smooth-scrolling&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on smooth scrolling&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-spatial-navigation&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on spatial navigation&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><span class="preprocessor">#if WEBKIT_CHECK_VERSION(2, 32, 0)</span></div><div class="line"><span class="preprocessor">#else</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-plugins&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on plugin support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-webgl&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on WebGL support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><span class="preprocessor">#endif</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-webaudio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on HTML5 audio support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;ignore-tls-errors&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Ignore TLS errors&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><span class="preprocessor">#ifdef DEBUG</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-webinspector&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on Web Inspector&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><span class="preprocessor">#endif</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;user-agent&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;User agent&quot;</span>), FALSE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;proxy-url&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Proxy URL&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;E.g. https://example.org, socks://mysocks:1080&quot;</span>) },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-java&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on Java support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-smooth-scrolling&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on smooth scrolling&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-spatial-navigation&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on spatial navigation&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><span class="preprocessor">#if WEBKIT_CHECK_VERSION(2, 32, 0)</span></div><div class="line"><span class="preprocessor">#else</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-plugins&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on plugin support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-webgl&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on WebGL support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><span class="preprocessor">#endif</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-webaudio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on HTML5 audio support&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;ignore-tls-errors&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Ignore TLS errors&quot;</span>), TRUE, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Forget passwords after use&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><span class="preprocessor">#ifdef DEBUG</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;enable-webinspector&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Turn on Web Inspector&quot;</span>), TRUE, NULL, NULL },</div><div class="line"><span class="preprocessor">#endif</span></div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
@@ -969,7 +969,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;server&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;URL&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;http://address or https://address&quot;</span>), NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;server&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;URL&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;http://address or https://address&quot;</span>), NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
diff --git a/public/www__plugin_8c_source.html b/public/www__plugin_8c_source.html
index c4d1792f6..2cc347947 100644
--- a/public/www__plugin_8c_source.html
+++ b/public/www__plugin_8c_source.html
@@ -95,9 +95,9 @@ $(document).ready(function(){initNavTree('www__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_plugin_w_w_w_data_html_a80b04541339086a453fad32295806f84"><div class="ttname"><a href="struct___remmina_plugin_w_w_w_data.html#a80b04541339086a453fad32295806f84">_RemminaPluginWWWData::formauthenticated</a></div><div class="ttdeci">gboolean formauthenticated</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00071">www_plugin.c:71</a></div></div>
<div class="ttc" id="www__plugin_8c_html_af1e5c3cccf8fcfb51c4518462b9b61ea"><div class="ttname"><a href="www__plugin_8c.html#af1e5c3cccf8fcfb51c4518462b9b61ea">remmina_plugin_www_close_connection</a></div><div class="ttdeci">static gboolean remmina_plugin_www_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00734">www_plugin.c:734</a></div></div>
<div class="ttc" id="www__plugin_8c_html_a9323d1142816fbac8f87545a398a0f71"><div class="ttname"><a href="www__plugin_8c.html#a9323d1142816fbac8f87545a398a0f71">remmina_plugin_www_get_snapshot</a></div><div class="ttdeci">static gboolean remmina_plugin_www_get_snapshot(RemminaProtocolWidget *gp, RemminaPluginScreenshotData *rpsd)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00872">www_plugin.c:872</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
<div class="ttc" id="www__plugin_8h_html_accff0b8fc090986bc39b32ed358f03c9"><div class="ttname"><a href="www__plugin_8h.html#accff0b8fc090986bc39b32ed358f03c9">WWWWebViewDocumentType</a></div><div class="ttdeci">WWWWebViewDocumentType</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8h_source.html#l00042">www_plugin.h:42</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="www__plugin_8c_html_ae9973fcef32044b1238648c4695c3f23"><div class="ttname"><a href="www__plugin_8c.html#ae9973fcef32044b1238648c4695c3f23">remmina_plugin_www_on_auth</a></div><div class="ttdeci">static gboolean remmina_plugin_www_on_auth(WebKitWebView *webview, WebKitAuthenticationRequest *request, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00572">www_plugin.c:572</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
<div class="ttc" id="www__plugin_8c_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="www__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00074">www_plugin.c:74</a></div></div>
@@ -133,18 +133,18 @@ $(document).ready(function(){initNavTree('www__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="www__plugin_8c_html_aab3ceb1ae095823fcbee98ce2811b374"><div class="ttname"><a href="www__plugin_8c.html#aab3ceb1ae095823fcbee98ce2811b374">remmina_plugin_www_decide_resource</a></div><div class="ttdeci">gboolean remmina_plugin_www_decide_resource(WebKitPolicyDecision *decision, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00294">www_plugin.c:294</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a9b4cfe0a97a34260e58784feef693704"><div class="ttname"><a href="struct___remmina_plugin_service.html#a9b4cfe0a97a34260e58784feef693704">_RemminaPluginService::protocol_plugin_init_auth</a></div><div class="ttdeci">gint(* protocol_plugin_init_auth)(RemminaProtocolWidget *gp, RemminaMessagePanelFlags pflags, const gchar *title, const gchar *default_username, const gchar *default_password, const gchar *default_domain, const gchar *password_prompt)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00191">plugin.h:191</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
<div class="ttc" id="www__plugin_8c_html_a73ffad7289c2476a04d7270fa340bee9"><div class="ttname"><a href="www__plugin_8c.html#a73ffad7289c2476a04d7270fa340bee9">RemminaPluginWWWData</a></div><div class="ttdeci">struct _RemminaPluginWWWData RemminaPluginWWWData</div></div>
<div class="ttc" id="www__config_8h_html"><div class="ttname"><a href="www__config_8h.html">www_config.h</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_aa413711beeac32a453068c0faf75f164"><div class="ttname"><a href="struct___remmina_plugin_service.html#aa413711beeac32a453068c0faf75f164">_RemminaPluginService::file_get_path</a></div><div class="ttdeci">const gchar *(* file_get_path)(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00217">plugin.h:217</a></div></div>
<div class="ttc" id="www__plugin_8c_html_a18fa028449a5d5d455ce6cde7bfd2ef2"><div class="ttname"><a href="www__plugin_8c.html#a18fa028449a5d5d455ce6cde7bfd2ef2">remmina_plugin_www_decide_nav</a></div><div class="ttdeci">void remmina_plugin_www_decide_nav(WebKitPolicyDecision *decision, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00130">www_plugin.c:130</a></div></div>
<div class="ttc" id="www__plugin_8c_html_a98eddc35144b89bce2e247d5ea49177b"><div class="ttname"><a href="www__plugin_8c.html#a98eddc35144b89bce2e247d5ea49177b">remmina_plugin_www_response_received</a></div><div class="ttdeci">void remmina_plugin_www_response_received(WebKitDownload *download, GParamSpec *ps, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00087">www_plugin.c:87</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
<div class="ttc" id="www__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="www__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00951">www_plugin.c:951</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ac892dd297fae87868752a1f86e07937d"><div class="ttname"><a href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">_RemminaPluginService::protocol_plugin_init_get_username</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_username)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00194">plugin.h:194</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ad98eaa3efc0214bc701dc66b5730e174"><div class="ttname"><a href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">_RemminaPluginService::protocol_plugin_init_get_password</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_password)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00195">plugin.h:195</a></div></div>
<div class="ttc" id="struct___remmina_plugin_w_w_w_data_html_a3f740cb467c00cb8f17ff2546498fa54"><div class="ttname"><a href="struct___remmina_plugin_w_w_w_data.html#a3f740cb467c00cb8f17ff2546498fa54">_RemminaPluginWWWData::settings</a></div><div class="ttdeci">WebKitSettings * settings</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00061">www_plugin.c:61</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ac3fc04c8c7b20c35122e2786d9e8fc34"><div class="ttname"><a href="struct___remmina_plugin_service.html#ac3fc04c8c7b20c35122e2786d9e8fc34">_RemminaPluginService::protocol_plugin_register_hostkey</a></div><div class="ttdeci">void(* protocol_plugin_register_hostkey)(RemminaProtocolWidget *gp, GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00180">plugin.h:180</a></div></div>
diff --git a/public/www__plugin_8h.html b/public/www__plugin_8h.html
index 757af65e1..92975a7f7 100644
--- a/public/www__plugin_8h.html
+++ b/public/www__plugin_8h.html
@@ -324,7 +324,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00111">111</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="rdp__plugin_8c_source.html#l00112">112</a> of file <a class="el" href="rdp__plugin_8c_source.html">rdp_plugin.c</a>.</p>
</div>
</div>
diff --git a/public/www__plugin_8h_source.html b/public/www__plugin_8h_source.html
index f62e72379..9ae66620e 100644
--- a/public/www__plugin_8h_source.html
+++ b/public/www__plugin_8h_source.html
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('www__plugin_8h_source.html','');});
<div class="ttc" id="www__plugin_8h_html_accff0b8fc090986bc39b32ed358f03c9a3312508c6e879d0bdda13baf651bc569"><div class="ttname"><a href="www__plugin_8h.html#accff0b8fc090986bc39b32ed358f03c9a3312508c6e879d0bdda13baf651bc569">WWW_WEB_VIEW_DOCUMENT_XML</a></div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8h_source.html#l00044">www_plugin.h:44</a></div></div>
<div class="ttc" id="www__plugin_8h_html_accff0b8fc090986bc39b32ed358f03c9a665fa26d2235022f11a2b36b06a885dd"><div class="ttname"><a href="www__plugin_8h.html#accff0b8fc090986bc39b32ed358f03c9a665fa26d2235022f11a2b36b06a885dd">WWW_WEB_VIEW_DOCUMENT_IMAGE</a></div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8h_source.html#l00045">www_plugin.h:45</a></div></div>
<div class="ttc" id="www__plugin_8h_html_accff0b8fc090986bc39b32ed358f03c9a20be7f0ccef7d70651347889eba498a4"><div class="ttname"><a href="www__plugin_8h.html#accff0b8fc090986bc39b32ed358f03c9a20be7f0ccef7d70651347889eba498a4">WWW_WEB_VIEW_DOCUMENT_OCTET_STREAM</a></div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8h_source.html#l00046">www_plugin.h:46</a></div></div>
-<div class="ttc" id="www__plugin_8h_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="www__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00111">rdp_plugin.c:111</a></div></div>
+<div class="ttc" id="www__plugin_8h_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="www__plugin_8h.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="rdp__plugin_8c_source.html#l00112">rdp_plugin.c:112</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html"><div class="ttname"><a href="struct___remmina_plugin_service.html">_RemminaPluginService</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00165">plugin.h:165</a></div></div>
<div class="ttc" id="www__plugin_8h_html_a05218b821edab542795439a87ad9d909"><div class="ttname"><a href="www__plugin_8h.html#a05218b821edab542795439a87ad9d909">remmina_plugin_www_decide_newwin</a></div><div class="ttdeci">void remmina_plugin_www_decide_newwin(WebKitPolicyDecision *decision, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00232">www_plugin.c:232</a></div></div>
<div class="ttc" id="www__plugin_8h_html_ae91c9382d5bb29416eab7de18c6d6b8d"><div class="ttname"><a href="www__plugin_8h.html#ae91c9382d5bb29416eab7de18c6d6b8d">remmina_plugin_www_notify_download</a></div><div class="ttdeci">void remmina_plugin_www_notify_download(WebKitDownload *download, gchar *destination, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="www__plugin_8c_source.html#l00093">www_plugin.c:93</a></div></div>
diff --git a/public/x2go__plugin_8c.html b/public/x2go__plugin_8c.html
index 4b9114cbe..86a331abc 100644
--- a/public/x2go__plugin_8c.html
+++ b/public/x2go__plugin_8c.html
@@ -2564,7 +2564,7 @@ Variables</h2></td></tr>
<div class="ttc" id="x2go__plugin_8c_html_a8bb1f63c7ea5f949fef485fc2cc09321"><div class="ttname"><a href="x2go__plugin_8c.html#a8bb1f63c7ea5f949fef485fc2cc09321">rmplugin_x2go_close_connection</a></div><div class="ttdeci">static gboolean rmplugin_x2go_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01621">x2go_plugin.c:1621</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_af64a08d96c442369520de356c40d1ada"><div class="ttname"><a href="x2go__plugin_8c.html#af64a08d96c442369520de356c40d1ada">rmplugin_x2go_query_feature</a></div><div class="ttdeci">static gboolean rmplugin_x2go_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l03116">x2go_plugin.c:3116</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_ae21f0dac3fc86e0809be44ccf97b5637"><div class="ttname"><a href="x2go__plugin_8c.html#ae21f0dac3fc86e0809be44ccf97b5637">rmplugin_x2go_open_connection</a></div><div class="ttdeci">static gboolean rmplugin_x2go_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l03092">x2go_plugin.c:3092</a></div></div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="x2go__plugin_8c_source.html#l01464">1464</a> of file <a class="el" href="x2go__plugin_8c_source.html">x2go_plugin.c</a>.</p>
@@ -2591,14 +2591,14 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a>, <span class="stringliteral">&quot;server&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;username&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Username&quot;</span>), FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a>, <span class="stringliteral">&quot;password&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Password&quot;</span>), FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>, <span class="stringliteral">&quot;command&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Startup program&quot;</span>), FALSE,</div><div class="line"> <span class="stringliteral">&quot;MATE,KDE,XFCE,LXDE,TERMINAL&quot;</span>,</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Which command should be executed after creating the X2Go session?&quot;</span>), NULL, NULL},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a>, <span class="stringliteral">&quot;resolution&quot;</span>, NULL, FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;kbdlayout&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Keyboard Layout (auto)&quot;</span>), FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;kbdtype&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Keyboard type (auto)&quot;</span>), FALSE, NULL, NULL, NULL, NULL},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>, <span class="stringliteral">&quot;audio&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Audio support&quot;</span>), FALSE,</div><div class="line"> <span class="stringliteral">&quot;pulse,esd,none&quot;</span>,</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;The sound system of the X2Go server (default: &#39;pulse&#39;).&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;pulse,esd,none&quot;</span>,</div><div class="line"> G_CALLBACK(<a class="code" href="x2go__plugin_8c.html#a8be68c2aeb275f99167e5ea0b324f85a">rmplugin_x2go_string_setting_validator</a>)},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a>, <span class="stringliteral">&quot;clipboard&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Clipboard direction&quot;</span>), FALSE,</div><div class="line"> <span class="stringliteral">&quot;none,server,client,both&quot;</span>,</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Which direction should clipboard content be copied? &quot;</span></div><div class="line"> <span class="stringliteral">&quot;(default: &#39;both&#39;).&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;none,server,client,both&quot;</span>,</div><div class="line"> G_CALLBACK(<a class="code" href="x2go__plugin_8c.html#a8be68c2aeb275f99167e5ea0b324f85a">rmplugin_x2go_string_setting_validator</a>)},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a>, <span class="stringliteral">&quot;dpi&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;DPI resolution&quot;</span>), FALSE, NULL,</div><div class="line"> <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Launch session with a specific resolution (in dots per inch). &quot;</span></div><div class="line"> <span class="stringliteral">&quot;Must be between 20 and 400.&quot;</span>),</div><div class="line"> <span class="stringliteral">&quot;20;400&quot;</span>, </div><div class="line"> G_CALLBACK(<a class="code" href="x2go__plugin_8c.html#a832a7c01899fc4a22975e2aba019e1f5">rmplugin_x2go_int_setting_validator</a>)},</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a>, <span class="stringliteral">&quot;ssh_privatekey&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SSH identity file&quot;</span>), FALSE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Your private key&quot;</span>), NULL, NULL },</div><div class="line"> {<a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL}}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a579ed0f0f6624dd55a25665693c92a92">REMMINA_PROTOCOL_SETTING_TYPE_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00100">types.h:100</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00112">types.h:112</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00113">types.h:113</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a832a7c01899fc4a22975e2aba019e1f5"><div class="ttname"><a href="x2go__plugin_8c.html#a832a7c01899fc4a22975e2aba019e1f5">rmplugin_x2go_int_setting_validator</a></div><div class="ttdeci">static GError * rmplugin_x2go_int_setting_validator(gchar *key, gpointer value, gchar *data)</div><div class="ttdoc">Validator-functions are getting executed when the user wants to save profile settings. </div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l03266">x2go_plugin.c:3266</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a8be68c2aeb275f99167e5ea0b324f85a"><div class="ttname"><a href="x2go__plugin_8c.html#a8be68c2aeb275f99167e5ea0b324f85a">rmplugin_x2go_string_setting_validator</a></div><div class="ttdeci">static GError * rmplugin_x2go_string_setting_validator(gchar *key, gchar *value, gchar *data)</div><div class="ttdoc">Validator-functions are getting executed when the user wants to save profile settings. </div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l03193">x2go_plugin.c:3193</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00102">types.h:102</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
diff --git a/public/x2go__plugin_8c_source.html b/public/x2go__plugin_8c_source.html
index baa8932f8..dcacf0b97 100644
--- a/public/x2go__plugin_8c_source.html
+++ b/public/x2go__plugin_8c_source.html
@@ -95,14 +95,14 @@ $(document).ready(function(){initNavTree('x2go__plugin_8c_source.html','');});
<div class="ttc" id="struct___remmina_plugin_html"><div class="ttname"><a href="struct___remmina_plugin.html">_RemminaPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00056">plugin.h:56</a></div></div>
<div class="ttc" id="struct___connection_data_html"><div class="ttname"><a href="struct___connection_data.html">_ConnectionData</a></div><div class="ttdoc">Stores all necessary information needed for retrieving sessions from a X2Go server. </div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01016">x2go_plugin.c:1016</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a161d67b872aa0a7988a3a9afd186d604"><div class="ttname"><a href="x2go__plugin_8c.html#a161d67b872aa0a7988a3a9afd186d604">rmplugin_x2go_parse_pyhoca_sessions</a></div><div class="ttdeci">static GList * rmplugin_x2go_parse_pyhoca_sessions(RemminaProtocolWidget *gp, GError **error, struct _ConnectionData *connect_data)</div><div class="ttdoc">This function is used to parse the output of rmplugin_x2go_get_pyhoca_sessions(). ...</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l02026">x2go_plugin.c:2026</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00112">types.h:112</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ab4c68b7df42ebd08e953cc72c5b97583">REMMINA_PROTOCOL_SETTING_TYPE_INT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00113">types.h:113</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a874b245f21511f87e417e48e867ccb38"><div class="ttname"><a href="x2go__plugin_8c.html#a874b245f21511f87e417e48e867ccb38">rmplugin_x2go_init</a></div><div class="ttdeci">static void rmplugin_x2go_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l02761">x2go_plugin.c:2761</a></div></div>
<div class="ttc" id="structon_main_thread__cb__data_html_a2819729ddf9ffa92927a4ef7d3a6e0f8"><div class="ttname"><a href="structon_main_thread__cb__data.html#a2819729ddf9ffa92927a4ef7d3a6e0f8">onMainThread_cb_data::w</a></div><div class="ttdeci">Window w</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01478">x2go_plugin.c:1478</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a7ac875d202f1ccd0ae85bb60ee3222c1"><div class="ttname"><a href="struct___remmina_plugin_service.html#a7ac875d202f1ccd0ae85bb60ee3222c1">_RemminaPluginService::protocol_plugin_set_error</a></div><div class="ttdeci">void(* protocol_plugin_set_error)(RemminaProtocolWidget *gp, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00176">plugin.h:176</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a756badc8d3d2f11f40236b4f6eb3ad11ab707e862e6b3b1de59dc8af626c3adee"><div class="ttname"><a href="x2go__plugin_8c.html#a756badc8d3d2f11f40236b4f6eb3ad11ab707e862e6b3b1de59dc8af626c3adee">STR2INT_INCONVERTIBLE</a></div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00197">x2go_plugin.c:197</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_aa1e2d6e65389dd8fc61e38cffca98165a2b7999cf0576ea2a030696831b30ec7a"><div class="ttname"><a href="x2go__plugin_8c.html#aa1e2d6e65389dd8fc61e38cffca98165a2b7999cf0576ea2a030696831b30ec7a">SESSION_HOSTNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00182">x2go_plugin.c:182</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a59baf7f963dc3cdbd87224706cd73c68"><div class="ttname"><a href="x2go__plugin_8c.html#a59baf7f963dc3cdbd87224706cd73c68">rmplugin_x2go</a></div><div class="ttdeci">static RemminaProtocolPlugin rmplugin_x2go</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01464">x2go_plugin.c:1464</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00106">types.h:106</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a9a10942cbe118d3ca8458b667b0c5edb"><div class="ttname"><a href="x2go__plugin_8c.html#a9a10942cbe118d3ca8458b667b0c5edb">rmplugin_x2go_verify_connection_data</a></div><div class="ttdeci">static gboolean rmplugin_x2go_verify_connection_data(struct _ConnectionData *connect_data)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01102">x2go_plugin.c:1102</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_aa1e2d6e65389dd8fc61e38cffca98165a388a655fcee2c18abb79234a8a4eef94"><div class="ttname"><a href="x2go__plugin_8c.html#aa1e2d6e65389dd8fc61e38cffca98165a388a655fcee2c18abb79234a8a4eef94">SESSION_SESSION_ID</a></div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00177">x2go_plugin.c:177</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
@@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('x2go__plugin_8c_source.html','');});
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00054">types.h:54</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a2f3106cb9e16e497bf1aa78a336a729d"><div class="ttname"><a href="x2go__plugin_8c.html#a2f3106cb9e16e497bf1aa78a336a729d">rmplugin_x2go_remove_window_id</a></div><div class="ttdeci">static void rmplugin_x2go_remove_window_id(Window window_id)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01543">x2go_plugin.c:1543</a></div></div>
<div class="ttc" id="struct___connection_data_html_a9bf0eafee9efa826d4dd89ba1f358236"><div class="ttname"><a href="struct___connection_data.html#a9bf0eafee9efa826d4dd89ba1f358236">_ConnectionData::ssh_passphrase</a></div><div class="ttdeci">gchar * ssh_passphrase</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01021">x2go_plugin.c:1021</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00108">types.h:108</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae2237632b23d3c90a842bc5bc8302ec5">REMMINA_PROTOCOL_SETTING_TYPE_COMBO</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a25b6f161265e60c3275c479fb3eb3cb9"><div class="ttname"><a href="x2go__plugin_8c.html#a25b6f161265e60c3275c479fb3eb3cb9">rmplugin_x2go_get_ssh_passphrase</a></div><div class="ttdeci">static gboolean rmplugin_x2go_get_ssh_passphrase(RemminaProtocolWidget *gp, gchar *errmsg, gchar **passphrase)</div><div class="ttdoc">Asks the user for a username and password. </div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01744">x2go_plugin.c:1744</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a7e099c196b443f83134b076e292cee63"><div class="ttname"><a href="x2go__plugin_8c.html#a7e099c196b443f83134b076e292cee63">rmplugin_x2go_ask_session</a></div><div class="ttdeci">static gchar * rmplugin_x2go_ask_session(RemminaProtocolWidget *gp, GError **error, struct _ConnectionData *connect_data)</div><div class="ttdoc">Asks the user, with the help of a dialog, to continue an already existing session, terminate or create a new one. </div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l02198">x2go_plugin.c:2198</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a21257bb4c8022786bc77035dae0bbf0a"><div class="ttname"><a href="x2go__plugin_8c.html#a21257bb4c8022786bc77035dae0bbf0a">rmplugin_x2go_try_window_id</a></div><div class="ttdeci">static gboolean rmplugin_x2go_try_window_id(Window window_id)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l02800">x2go_plugin.c:2800</a></div></div>
@@ -192,24 +192,24 @@ $(document).ready(function(){initNavTree('x2go__plugin_8c_source.html','');});
<div class="ttc" id="structon_main_thread__cb__data_html_acd2e5f24279a00e0d426d67604dc8fbc"><div class="ttname"><a href="structon_main_thread__cb__data.html#acd2e5f24279a00e0d426d67604dc8fbc">onMainThread_cb_data::mu</a></div><div class="ttdeci">pthread_mutex_t mu</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00076">vnc_plugin.c:76</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_aa1e2d6e65389dd8fc61e38cffca98165a695a5bbc86348af93dd91c566ff36f53"><div class="ttname"><a href="x2go__plugin_8c.html#aa1e2d6e65389dd8fc61e38cffca98165a695a5bbc86348af93dd91c566ff36f53">SESSION_GRAPHIC_PORT</a></div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00184">x2go_plugin.c:184</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_af64a08d96c442369520de356c40d1ada"><div class="ttname"><a href="x2go__plugin_8c.html#af64a08d96c442369520de356c40d1ada">rmplugin_x2go_query_feature</a></div><div class="ttdeci">static gboolean rmplugin_x2go_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l03116">x2go_plugin.c:3116</a></div></div>
-<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
+<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00129">types.h:129</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a2b75137f9d7739c0d7881ee16e2aabfa"><div class="ttname"><a href="struct___remmina_plugin_service.html#a2b75137f9d7739c0d7881ee16e2aabfa">_RemminaPluginService::get_profile_remote_height</a></div><div class="ttdeci">gint(* get_profile_remote_height)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00253">plugin.h:253</a></div></div>
<div class="ttc" id="struct___remmina_plugin_x2_go_data_html_aca25367be14cc65a5313151814f44916"><div class="ttname"><a href="struct___remmina_plugin_x2_go_data.html#aca25367be14cc65a5313151814f44916">_RemminaPluginX2GoData::thread</a></div><div class="ttdeci">pthread_t thread</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00142">x2go_plugin.c:142</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_acec567735d2cdea8eacbd39c088728ee"><div class="ttname"><a href="x2go__plugin_8c.html#acec567735d2cdea8eacbd39c088728ee">rmplugin_x2go_pyhoca_cli_exited</a></div><div class="ttdeci">static void rmplugin_x2go_pyhoca_cli_exited(GPid pid, gint status, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01639">x2go_plugin.c:1639</a></div></div>
<div class="ttc" id="struct___connection_data_html_af15752c3cf9e16fff53be579bf747541"><div class="ttname"><a href="struct___connection_data.html#af15752c3cf9e16fff53be579bf747541">_ConnectionData::username</a></div><div class="ttdeci">gchar * username</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01018">x2go_plugin.c:1018</a></div></div>
-<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
+<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_ae21f0dac3fc86e0809be44ccf97b5637"><div class="ttname"><a href="x2go__plugin_8c.html#ae21f0dac3fc86e0809be44ccf97b5637">rmplugin_x2go_open_connection</a></div><div class="ttdeci">static gboolean rmplugin_x2go_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l03092">x2go_plugin.c:3092</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350aa045109309280606ff11a9de1862e2ba">REMMINA_PROTOCOL_SETTING_TYPE_RESOLUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00102">types.h:102</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_aa1e2d6e65389dd8fc61e38cffca98165a068cdca754cf1240547311a7896f0817"><div class="ttname"><a href="x2go__plugin_8c.html#aa1e2d6e65389dd8fc61e38cffca98165a068cdca754cf1240547311a7896f0817">SESSION_COOKIE</a></div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00183">x2go_plugin.c:183</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_ab24eb75755ed23f378cadca3393bd89a"><div class="ttname"><a href="x2go__plugin_8c.html#ab24eb75755ed23f378cadca3393bd89a">rmplugin_x2go_on_plug_added</a></div><div class="ttdeci">static void rmplugin_x2go_on_plug_added(GtkSocket *socket, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l02730">x2go_plugin.c:2730</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00156">types.h:156</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a10be0730fc3ea326856019ae139a922a">REMMINA_MESSAGE_PANEL_FLAG_USERNAME</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00157">types.h:157</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_aa1e2d6e65389dd8fc61e38cffca98165a081555600c90a11ad962e0b69cb9dfa0"><div class="ttname"><a href="x2go__plugin_8c.html#aa1e2d6e65389dd8fc61e38cffca98165a081555600c90a11ad962e0b69cb9dfa0">SESSION_SUSPENDED_SINCE</a></div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00178">x2go_plugin.c:178</a></div></div>
<div class="ttc" id="struct___connection_data_html_a5366b4138e2ff42c85f81a83a23cb2c1"><div class="ttname"><a href="struct___connection_data.html#a5366b4138e2ff42c85f81a83a23cb2c1">_ConnectionData::host</a></div><div class="ttdeci">gchar * host</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01017">x2go_plugin.c:1017</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_a390e3b371156197feb518b737a31cc53"><div class="ttname"><a href="x2go__plugin_8c.html#a390e3b371156197feb518b737a31cc53">onMainThread_schedule_callback_and_wait</a></div><div class="ttdeci">static void onMainThread_schedule_callback_and_wait(struct onMainThread_cb_data *d)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l01511">x2go_plugin.c:1511</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ac892dd297fae87868752a1f86e07937d"><div class="ttname"><a href="struct___remmina_plugin_service.html#ac892dd297fae87868752a1f86e07937d">_RemminaPluginService::protocol_plugin_init_get_username</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_username)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00194">plugin.h:194</a></div></div>
<div class="ttc" id="struct___dialog_data_html_a3cee753dca9f060cde0638c54e1466c4"><div class="ttname"><a href="struct___dialog_data.html#a3cee753dca9f060cde0638c54e1466c4">_DialogData::buttons</a></div><div class="ttdeci">GtkButtonsType buttons</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00272">x2go_plugin.c:272</a></div></div>
-<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00159">types.h:159</a></div></div>
+<div class="ttc" id="types_8h_html_a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c"><div class="ttname"><a href="types_8h.html#a341a0a8b6509633809d99348cc3ba486a9b734c324722cf2982768feaeeb15c7c">REMMINA_MESSAGE_PANEL_FLAG_SAVEPASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00160">types.h:160</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_acd692852ebb84bbc2978b44aff7345b6"><div class="ttname"><a href="x2go__plugin_8c.html#acd692852ebb84bbc2978b44aff7345b6">rmplugin_x2go_session_property_to_string</a></div><div class="ttdeci">static gchar * rmplugin_x2go_session_property_to_string(guint session_property)</div><div class="ttdoc">Translates a session property (described by SESSION_PROPERTIES enum) to a string containing it&amp;#39;s disp...</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00471">x2go_plugin.c:471</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_afe3c32a421cd5dcc735b99318ff8844a"><div class="ttname"><a href="struct___remmina_plugin_service.html#afe3c32a421cd5dcc735b99318ff8844a">_RemminaPluginService::get_profile_remote_width</a></div><div class="ttdeci">gint(* get_profile_remote_width)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00252">plugin.h:252</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ad98eaa3efc0214bc701dc66b5730e174"><div class="ttname"><a href="struct___remmina_plugin_service.html#ad98eaa3efc0214bc701dc66b5730e174">_RemminaPluginService::protocol_plugin_init_get_password</a></div><div class="ttdeci">gchar *(* protocol_plugin_init_get_password)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00195">plugin.h:195</a></div></div>
@@ -221,7 +221,7 @@ $(document).ready(function(){initNavTree('x2go__plugin_8c_source.html','');});
<div class="ttc" id="x2go__plugin_8c_html_a56e5020de11446dbc23f3480e313f208"><div class="ttname"><a href="x2go__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a></div><div class="ttdeci">G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l03445">x2go_plugin.c:3445</a></div></div>
<div class="ttc" id="structon_main_thread__cb__data_html_ad4019cdd5ac560eb1cd47d9f924831bb"><div class="ttname"><a href="structon_main_thread__cb__data.html#ad4019cdd5ac560eb1cd47d9f924831bb">onMainThread_cb_data::gp</a></div><div class="ttdeci">RemminaProtocolWidget * gp</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00072">vnc_plugin.c:72</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a4880fb57479708bc1cb47bf6b4dcabc3"><div class="ttname"><a href="struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3">_RemminaPluginService::file_set_string</a></div><div class="ttdeci">void(* file_set_string)(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00218">plugin.h:218</a></div></div>
-<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00110">types.h:110</a></div></div>
+<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a31ee66fffaa245ae411aba0c296ad9da">REMMINA_PROTOCOL_SETTING_TYPE_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00111">types.h:111</a></div></div>
<div class="ttc" id="struct___x2_go_custom_user_data_html_aa4469f7020bd9968688ee87b3b4d0c24"><div class="ttname"><a href="struct___x2_go_custom_user_data.html#aa4469f7020bd9968688ee87b3b4d0c24">_X2GoCustomUserData::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00164">x2go_plugin.c:164</a></div></div>
<div class="ttc" id="x2go__plugin_8c_html_ab54b79eb5b8f9560d3e785cf16c45a9b"><div class="ttname"><a href="x2go__plugin_8c.html#ab54b79eb5b8f9560d3e785cf16c45a9b">rm_plugin_service</a></div><div class="ttdeci">static RemminaPluginService * rm_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00136">x2go_plugin.c:136</a></div></div>
<div class="ttc" id="struct___x2_go_custom_user_data_html_ac46ce5ff0709268c5a667190cd10917b"><div class="ttname"><a href="struct___x2_go_custom_user_data.html#ac46ce5ff0709268c5a667190cd10917b">_X2GoCustomUserData::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="x2go__plugin_8c_source.html#l00163">x2go_plugin.c:163</a></div></div>