U++: Issueshttps://www.ultimatepp.org/redmine/https://www.ultimatepp.org/redmine/redmine/favicon.ico2019-02-26T20:10:10ZRedmine
Redmine Bug #1933 (Rejected): Fonts are not verticaly centered on Manjaro Linux (KDE)https://www.ultimatepp.org/redmine/issues/19332019-02-26T20:10:10ZZbigniew Rebacz
<p>I just installed new distribution and found that text is not vertically centered like on other distributions. I attached screenshot for more information:</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> Bug #1481 (Rejected): Fix DHCtrl for X11 and recover OpenGLhttps://www.ultimatepp.org/redmine/issues/14812016-06-25T18:25:59ZZbigniew Rebacz
<p>It seems that recent changes to DHCtrl cause that OpenGL is not rendered on X11 backend. The easiest fix is to revert to old code with commenting.</p> Bug #1386 (Approved): Shortucts (CTRL+C & CTRL+V) dosen't work on Russian keyboard (GTK backed)https://www.ultimatepp.org/redmine/issues/13862016-02-23T18:45:36ZZbigniew Rebacz
<p><a class="external" href="http://www.ultimatepp.org/forums/index.php?t=msg&goto=46049&#msg_46049">http://www.ultimatepp.org/forums/index.php?t=msg&goto=46049&#msg_46049</a></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> Bug #998 (New): Switching menu bar item is potentialy slow (can generate lag effect)https://www.ultimatepp.org/redmine/issues/9982015-02-26T22:39:33ZZbigniew Rebacz
<p>For example in IDE the process look like this.<br />- Mouse enter menu bar (Menu Bar has got focus)<br />- Menu bar item is open<br />- Mouse move to another menu entry.<br /> - Focus Lost<br /> - Code Editor paints caret (This generate something like lag effect!)<br />- Another menu bar item is open</p>
<p>Moving fast from menu items generate flashing caret in code editor.</p> Bug #970 (Approved): Gtk backend hangs on "Ctrl::RenderPrimarySelection" (GtkClip.cpp)https://www.ultimatepp.org/redmine/issues/9702015-01-27T16:45:35ZZbigniew Rebacz
<p>Sometimes I have got random crashes on Linux with GTK IDE Backend. It seems that I have found cause.</p>
<p>How to reproduce? (It is hard)</p>
<p>1. Run IDE.<br />2. Try to double click on assembly name (Do this fast).<br />3. If evrything is OK. Press cancel.<br />4. Repeat points 2 & 3 untile the error occures.</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> Bug #656 (Approved): GDK_LEAVE_NOTIFY dosen't refresh the state of ctrls (GTK Backend)https://www.ultimatepp.org/redmine/issues/6562014-01-20T19:31:34ZZbigniew Rebacz
<p>It seems that ctrls don't recive mouse event when pointer leaves the window area. This bug can be observed while using menubars when Standard theme is enable. I think we should handle mouse events when pointer leaves window area.</p>
<p>(CtrlCore/GtkEvent.cpp - line 136):</p>
<pre><code class="cpp syntaxhl"><span class="CodeRay"> <span class="keyword">case</span> GDK_LEAVE_NOTIFY:
EventMouseValid = <span class="predefined-constant">false</span>;
<span class="keyword">case</span> GDK_MOTION_NOTIFY: {
GdkEventMotion *e = (GdkEventMotion *)event;
DoMouseEvent(e->state, Point((<span class="predefined-type">int</span>)e->x_root, (<span class="predefined-type">int</span>)e->y_root));
<span class="keyword">break</span>;
}
</span></code><br /></pre>
<p>instead of:</p>
<pre><code class="cpp syntaxhl"><span class="CodeRay"> <span class="keyword">case</span> GDK_LEAVE_NOTIFY:
EventMouseValid = <span class="predefined-constant">false</span>;
<span class="keyword">return</span> <span class="predefined-constant">false</span>; <span class="comment">// <- MouseLeave() never be executed!</span>
<span class="keyword">case</span> GDK_MOTION_NOTIFY: {
GdkEventMotion *e = (GdkEventMotion *)event;
DoMouseEvent(e->state, Point((<span class="predefined-type">int</span>)e->x_root, (<span class="predefined-type">int</span>)e->y_root));
<span class="keyword">break</span>;
}
</span></code><br /></pre> 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> Bug #634 (Approved): ToolTip works only on primary workarea (X11 - Xinerama)https://www.ultimatepp.org/redmine/issues/6342014-01-06T19:45:02ZZbigniew Rebacz
<ul>
<li>Small X11App.cpp update</li>
</ul> Bug #619 (Approved): GTK backend serialization should support multi monitor modehttps://www.ultimatepp.org/redmine/issues/6192013-12-28T23:45:50ZZbigniew Rebacz
<p>We need to replace one line of code(CtrlCore/GtkTop - line 243):<br /><pre>
Rect limit = GetWorkArea();
</pre></p>
<p>with<br /><pre>
Rect limit = GetVirtualWorkArea();
</pre></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>