Author: rpmcruz
Date: Tue Sep 23 18:44:59 2008
New Revision: 51432
URL: http://svn.opensuse.org/viewcvs/yast?rev=51432&view=rev
Log:
* src/YGWidget.cc: bug fix 421794: clean any emitted event when
destroyed. The new libyui crashes when doing YWidget::isValid()
for a destroyed widget due to memory overwrite.
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/YGLayout.cc
trunk/gtk/src/YGUI.cc
trunk/gtk/src/YGUI.h
trunk/gtk/src/YGWidget.cc
Modified: trunk/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=51432&r1=51431&r2=51432&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Tue Sep 23 18:44:59 2008
@@ -1,3 +1,9 @@
+2008-09-23 Ricardo Cruz
+
+ * src/YGWidget.cc: bug fix 421794: clean any emitted event when
+ destroyed. The new libyui crashes when doing YWidget::isValid()
+ for a destroyed widget due to memory overwrite.
+
2008-09-21 Ricardo Cruz
* src/YGText.cc: set MultiLineEdit wrap mode as WORD_CHAR.
Modified: trunk/gtk/src/YGLayout.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/YGLayout.cc?rev=51432&r1=51431&r2=51432&view=diff
==============================================================================
--- trunk/gtk/src/YGLayout.cc (original)
+++ trunk/gtk/src/YGLayout.cc Tue Sep 23 18:44:59 2008
@@ -111,6 +111,7 @@
YGWidget (this, parent, true, YGTK_TYPE_FIXED, NULL)
{
setBorder (0);
+ // YUI system variable test for layout policy doesn't work flawlessly
setLayoutPolicy (gnomeLayoutPolicy());
YGLAYOUT_INIT
}
Modified: trunk/gtk/src/YGUI.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/YGUI.cc?rev=51432&r1=51431&r2=51432&view=diff
==============================================================================
--- trunk/gtk/src/YGUI.cc (original)
+++ trunk/gtk/src/YGUI.cc Tue Sep 23 18:44:59 2008
@@ -198,7 +198,6 @@
normalCursor(); // waiting for input, so no more busy
guint timeout = 0;
- YEvent *event = NULL;
if (timeout_ms > 0)
timeout = g_timeout_add (timeout_ms,
@@ -211,6 +210,7 @@
else
while (g_main_context_iteration (NULL, FALSE)) ;
+ YEvent *event = NULL;
if (pendingEvent())
event = m_event_handler.consumePendingEvent();
Modified: trunk/gtk/src/YGUI.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/YGUI.h?rev=51432&r1=51431&r2=51432&view=diff
==============================================================================
--- trunk/gtk/src/YGUI.h (original)
+++ trunk/gtk/src/YGUI.h Tue Sep 23 18:44:59 2008
@@ -46,7 +46,7 @@
// called by YDialog::waitInput() / pollEvent()...
YEvent *waitInput (unsigned long timeout_ms, bool block);
- virtual YEvent * runPkgSelection (YWidget *packageSelector);
+ virtual YEvent *runPkgSelection (YWidget *packageSelector);
// used internally: for public use, see YApplication
void busyCursor();
Modified: trunk/gtk/src/YGWidget.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/YGWidget.cc?rev=51432&r1=51431&r2=51432&view=diff
==============================================================================
--- trunk/gtk/src/YGWidget.cc (original)
+++ trunk/gtk/src/YGWidget.cc Tue Sep 23 18:44:59 2008
@@ -53,6 +53,8 @@
YGWidget::~YGWidget()
{
IMPL
+ if (YGUI::ui()->eventPendingFor (m_ywidget))
+ YGUI::ui()->m_event_handler.consumePendingEvent();
// remove children if container?
#if 0
struct inner {
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org