<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
In debugging our cursor code and getting it under tests I found
something surprising (to me). Vis:<br>
<br>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<pre style="background-color:#ffffff;color:#000000;font-family:'DejaVu Sans Mono';font-size:9.0pt;"><span style="color:#008080;">std</span>::<span style="background-color:#e4e4ff;">shared_ptr</span><<span style="color:#008080;">mi</span>::<span style="color:#008080;">CursorImages</span>>
<span style="color:#008080;">mir</span>::<span style="color:#008080;">DefaultServerConfiguration</span>::the_cursor_images()
{
<span style="color:#000080;font-weight:bold;">return </span><span style="color:#660e7a;">cursor_images</span><span style="color:#008080;">(
</span><span style="color:#008080;"> </span>[<span style="color:#000080;font-weight:bold;">this</span>]() -> <span style="color:#008080;">std</span>::<span style="background-color:#e4e4ff;">shared_ptr</span><<span style="color:#008080;">mi</span>::<span style="color:#008080;">CursorImages</span>>
{
<span style="color:#000080;font-weight:bold;">auto </span>xcursor_loader = <span style="color:#008080;">std</span>::make_shared<<span style="color:#008080;">mi</span>::<span style="color:#008080;">XCursorLoader</span>>();
<span style="color:#000080;font-weight:bold;">if </span>(has_default_cursor(<span style="color:#008080;">*</span>xcursor_loader))
<span style="color:#000080;font-weight:bold;">return </span>xcursor_loader;
<span style="color:#000080;font-weight:bold;">else
</span><span style="color:#000080;font-weight:bold;"> return </span><span style="color:#008080;">std</span>::make_shared<<span style="color:#008080;">mi</span>::<span style="color:#008080;">BuiltinCursorImages</span>>();
}<span style="color:#008080;">)</span>;
}
</pre>
Which translates to "see if X cursors images are available, if so
use them, otherwise use a builtin cursor". I don't think this is
correct behaviour for *core* libmirserver - I think that should
always and predictably use the builtin image. Something like the
above makes perfect sense in example code, but I don't think we
should hard wire this as the default.<br>
<br>
Does anyone have an objection to changing the above to...<br>
<br>
<pre style="background-color:#ffffff;color:#000000;font-family:'DejaVu Sans Mono';font-size:9.0pt;"><span style="color:#008080;">std</span>::<span style="background-color:#e4e4ff;">shared_ptr</span><<span style="color:#008080;">mi</span>::<span style="color:#008080;">CursorImages</span>>
<span style="color:#008080;">mir</span>::<span style="color:#008080;">DefaultServerConfiguration</span>::the_cursor_images()
{
<span style="color:#000080;font-weight:bold;">return </span><span style="color:#660e7a;">cursor_images</span><span style="color:#008080;">(
</span><span style="color:#008080;"> </span>[<span style="color:#000080;font-weight:bold;">this</span>]() -> <span style="color:#008080;">std</span>::<span style="background-color:#e4e4ff;">shared_ptr</span><<span style="color:#008080;">mi</span>::<span style="color:#008080;">CursorImages</span>>
{
<span style="color:#000080;font-weight:bold;"> return </span><span style="color:#008080;">std</span>::make_shared<<span style="color:#008080;">mi</span>::<span style="color:#008080;">BuiltinCursorImages</span>>();
<span style="color:#000080;font-weight:bold;"></span> }<span style="color:#008080;">)</span>;
}
</pre>
...and moving the X cursor support to libexampleserverconfig.a?<br>
</body>
</html>