U++: Issueshttps://www.ultimatepp.org/redmine/https://www.ultimatepp.org/redmine/redmine/favicon.ico2020-10-30T18:53:03ZRedmine
Redmine Bug #2096 (Approved): DropList can not be closed on macOS by clicking on window empty areahttps://www.ultimatepp.org/redmine/issues/20962020-10-30T18:53:03ZZbigniew Rebacz
<p>This works fine on Windows and on Linux probably too, but on Mac you can close drop list by Esc or switching to another control. The default behavior is that when you click in empty space the list has been closed.</p>
<p>Maybe it is good time to re-switch to mac and to fix these two issues (the first one is with focus found during rc testing) :)</p> Feature #2080 (Approved): Add support for physical forward/backword mouse buttonshttps://www.ultimatepp.org/redmine/issues/20802020-10-03T09:03:30ZZbigniew Rebacz
<p>Some time ago I bought following mouse <a class="external" href="https://www.logitech.com/pl-pl/product/corded-mouse-m500s">https://www.logitech.com/pl-pl/product/corded-mouse-m500s</a> would be good if upp could take opportunity to support physical backwards/forward buttons.</p>
<p>Would be nice addition to following situations:<br />- FileSel<br />- Help<br />- CodeEditor (For returning to previous place)<br />- WebBrowser...</p> Bug #1994 (Rejected): CtrlCore: Xinerama library dependency required for "GUI .NOGTK" on FreeBSDhttps://www.ultimatepp.org/redmine/issues/19942019-10-16T18:31:02ZSender Ghost
<p>There is following linking error, if build examples/AddressBook package with using "GUI .NOGTK" main package configuration on FreeBSD operating system:<br /><pre>
Linking...
<...>/CtrlCore/CLANG.Gui.Nogtk.Shared/CtrlCore.a(X11App.o): In function `Upp::FindScreensResolutions()':
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x2c): undefined reference to `XineramaQueryExtension'
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x40): undefined reference to `XineramaIsActive'
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x5f): undefined reference to `XineramaQueryScreens'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
</pre></p>
<p>With following (filtered) ldd output for AddressBook executable (after applied patch):<br /><pre>
% ldd -a AddressBook | sed 's/ (.*)$// ; s|^/.*/||' | head -22
AddressBook:
libX11.so.6 => /usr/local/lib/libX11.so.6
libXau.so.6 => /usr/local/lib/libXau.so.6
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6
libXft.so.2 => /usr/local/lib/libXft.so.2
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1
libXrender.so.1 => /usr/local/lib/libXrender.so.1
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6
libexpat.so.1 => /usr/local/lib/libexpat.so.1
libxcb.so.1 => /usr/local/lib/libxcb.so.1
libXinerama.so.1 => /usr/local/lib/libXinerama.so.1
libthr.so.3 => /lib/libthr.so.3
librt.so.1 => /usr/lib/librt.so.1
libexecinfo.so.1 => /usr/lib/libexecinfo.so.1
libz.so.6 => /lib/libz.so.6
libpng16.so.16 => /usr/local/lib/libpng16.so.16
libc++.so.1 => /usr/lib/libc++.so.1
libcxxrt.so.1 => /lib/libcxxrt.so.1
libm.so.5 => /lib/libm.so.5
libgcc_s.so.1 => /lib/libgcc_s.so.1
libc.so.7 => /lib/libc.so.7
libX11.so.6:
</pre></p>
<p>Patch attached. But I guess, possible to simplify many Xinerama library dependency cases for uppsrc/CtrlCore package.</p> Task #1901 (Rejected): Replace GUI_APP_MAIN_HOOK with something more polishedhttps://www.ultimatepp.org/redmine/issues/19012018-08-11T19:09:41ZZbigniew Rebacz
<p>GUI_APP_MAIN_HOOK is now part of public CtrlCore API and it looks bad and generates warning "GUI_APP_MAIN_HOOK" redefined when used as designed.</p>
<p>In my opinion GUI_APP_MAIN_HOOK problem should be solved in following way:<br /><pre><code class="cpp syntaxhl"><span class="CodeRay"><span class="comment">// Solution</span>
std::function<<span class="predefined-type">bool</span>()> AfterAppInitHandler = {};
<span class="preprocessor">#define</span> GUI_APP_MAIN \
<span class="directive">void</span> GuiMainFn_(); \
\
<span class="predefined-type">int</span> main(<span class="predefined-type">int</span> argc, <span class="predefined-type">char</span> *argv, <span class="directive">const</span> <span class="predefined-type">char</span> *envptr) { \
UPP::AppInit__(argc, (<span class="directive">const</span> <span class="predefined-type">char</span> **)argv, envptr); \
<span class="keyword">if</span>(AfterAppInitHandler && AfterAppInitHandler()) \
<span class="keyword">return</span> UPP::GetExitCode(); \
...
<span class="comment">// Usage:</span>
INITBLOCK {
AfterAppInitHandler = []() -> <span class="predefined-type">bool</span> {
<span class="comment">// Do whatever you need here (handle command line etc.)... </span>
<span class="keyword">return</span> <span class="predefined-constant">false</span>;
};
}
</span></code></pre></p>
<p>Clean and elegant solution compatible with c++11 and above that can be used in 3-rd party code with convenience.</p> Task #1840 (New): System notification should not be limited only to tray iconhttps://www.ultimatepp.org/redmine/issues/18402018-02-18T20:21:13ZZbigniew Rebacz
<p>Application should be able to send system notification without the need of use TrayIcon class.<br /><pre><code class="cpp syntaxhl"><span class="CodeRay"><span class="keyword">class</span> <span class="class">TrayIcon</span> {
<span class="directive">void</span> Info(<span class="directive">const</span> <span class="predefined-type">char</span> *title, <span class="directive">const</span> <span class="predefined-type">char</span> *text, <span class="predefined-type">int</span> timeout = <span class="integer">10</span>) { Message(<span class="integer">1</span>, title, text, timeout); }
<span class="directive">void</span> Warning(<span class="directive">const</span> <span class="predefined-type">char</span> *title, <span class="directive">const</span> <span class="predefined-type">char</span> *text, <span class="predefined-type">int</span> timeout = <span class="integer">10</span>) { Message(<span class="integer">2</span>, title, text, timeout); }
<span class="directive">void</span> Error(<span class="directive">const</span> <span class="predefined-type">char</span> *title, <span class="directive">const</span> <span class="predefined-type">char</span> *text, <span class="predefined-type">int</span> timeout = <span class="integer">10</span>) { Message(<span class="integer">3</span>, title, text, timeout); }
};
</span></code></pre></p>
<p>So, this can be moved to CtrlCore as a separate method class like:<br /><pre><code class="cpp syntaxhl"><span class="CodeRay"><span class="keyword">class</span> <span class="class">Notification</span> final {
<span class="directive">public</span>:
Notification() = <span class="keyword">delete</span>;
<span class="directive">static</span> Info(...) {...}
}
</span></code></pre></p> Feature #1599 (Approved): Small addition to TabBarhttps://www.ultimatepp.org/redmine/issues/15992017-01-03T10:50:06Zcbpporter cbpporter
<p>When designing GUIs, a lot of small frames and spacing is used for aesthetics.</p>
<p>You often create a "border" of indents around some GUI element to highlight it. The border I'm designing is broken by TabCtrl's scrollbar.</p>
<p>With TabBar::AddFrameToScroolBar:<br /><pre>
void AddFrameToScroolBar(CtrlFrame& fr) { sc.AddFrame(fr); }
</pre><br />one can shift the scrollbar around and add borders to it.</p>
<p>Very minor issue, the difference is only a few pixels, but aesthetics is aesthetics...</p> Feature #1473 (New): Dbus support for linuxhttps://www.ultimatepp.org/redmine/issues/14732016-06-20T18:18:11ZZbigniew Rebacz
<p>I think we should wrapp Dbus API.</p> Feature #1199 (Rejected): Add function "void DisableCtrls(const Vector< Ptr<Ctrl> >& ctrl)" to Ct...https://www.ultimatepp.org/redmine/issues/11992015-07-23T13:00:32ZZbigniew Rebacz
<p>It seems that there is not counterweights for following method "void EnableCtrls(const Vector< Ptr<Ctrl> >& ctrl)".</p>
<p>We should also think about documented this two functions.</p> Feature #816 (New): Handle resolution change event on all existing backendshttps://www.ultimatepp.org/redmine/issues/8162014-07-26T11:57:27ZZbigniew Rebacz
<p>I think we should handle OS resolution change evnet. This is very important, because in currently U++ release we need to restart our application to adapt to the new definition.</p>
<p>Bugs related with this feature:<br />- Menubar can be open only on one certain screen when we turn on multimonitor mode in OS.<br />- When new resolution is bigger than previous window cannot be maximize.<br />- Probably more...</p>
<p>P.S.<br />This feature needs changes in Upp CtrlCore initialization structure. We need to reinitialize static variables when resolution is changed.</p> Feature #649 (Approved): GTK backend needs large icon implementationhttps://www.ultimatepp.org/redmine/issues/6492014-01-17T18:47:27ZZbigniew Rebacz
<p>It seems that this feature is not implemented in GTK backend...</p> Feature #618 (Approved): GTK backend needs IsCompositeGUI implementationhttps://www.ultimatepp.org/redmine/issues/6182013-12-28T23:38:45ZZbigniew Rebacz
<p>I think gtk backend should support "bool Ctrl::IsCompositedGUI()" method.</p>
<p>So, this is my implementation(CtrlCore/GtkWnd.cpp - line 57):<br /><pre>
bool Ctrl::IsCompositedGui()
{
GuiLock __;
static bool b = gdk_display_supports_composite(gdk_display_get_default()); // <- Should I use "gdk_display_get_default()" or something else for example stored variable???
return b;
}
</pre></p>
<ul>
<li>It seems that this patch is very important for some proprietary GPU drivers like NVIDIA, because b value is always true.</li>
</ul> Feature #587 (Approved): X11 needs minimal multi monitor mode supporthttps://www.ultimatepp.org/redmine/issues/5872013-11-25T20:08:08ZZbigniew Rebacz
<p>I implemented minimal multi monitor based on the tracking position of the mouse cursor. It doesn't change Ultimate++ overall schemat and works great. Two methods are implemented: "Ctrl::GetDefaultWindowRect()" and "Ctrl::GetPrimaryWorkArea()". Of course some other methods need update as well like "TopWindow::CenterRect(Ctrl *owner)".</p>
<p>P.S.<br />This update uses Xinerama the X11 extension. If operating system does not recognize this extension Ultimate++ works normally.<br />Personally, I think that this patch should eliminate most of multi monitors problems on X11.</p> Feature #528 (Rejected): To set public GetWndScreenRect()https://www.ultimatepp.org/redmine/issues/5282013-09-30T07:00:25ZIƱaki Zabalakoldo.ramirez@gmail.com
<p>Now GetWndScreenRect() is private.</p>
<p>However that is the only function to get the window rectangle with the frame included.</p> Feature #512 (Approved): "Largeicon" implementation for X11https://www.ultimatepp.org/redmine/issues/5122013-09-06T22:38:00ZZbigniew Rebacz
<p>I implemented "Largeicon" feature for X11. It works exactly the same like on ms windows. (Tested on Kubuntu 13.04)</p>
<p>P.S.<br />According to the following topic <a class="external" href="http://www.ultimatepp.org/redmine/issues/502">http://www.ultimatepp.org/redmine/issues/502</a> I enclosed additional ide.iml file (small icon fixes).</p> Feature #425 (Approved): HttpQuery support for the REST of methodshttps://www.ultimatepp.org/redmine/issues/4252013-01-24T11:09:03ZMiroslav Fidlercxl@ntllib.org