[Aptitude-svn-commit] r4142 - in branches/aptitude-0.3/aptitude: .
src/vscreen
Daniel Burrows
dburrows at costa.debian.org
Wed Sep 21 00:08:19 UTC 2005
Author: dburrows
Date: Wed Sep 21 00:08:17 2005
New Revision: 4142
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/vscreen/vs_table.cc
Log:
Fix new-focus choosing in the table widget.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Wed Sep 21 00:08:17 2005
@@ -1,5 +1,19 @@
2005-09-20 Daniel Burrows <dburrows at debian.org>
+ * src/vscreen/vs_table.cc:
+
+ Fix the logic that chooses a new focus after the current focus
+ goes away: most places were only looking at *UN*focussable
+ widgets; instead, only consider widgets that are visible and can
+ be focussed.
+
+ * src/vscreen/vscreen_widget.cc:
+
+ Don't mark the widget as having been destroyed until after it's
+ been hidden and removed from its owner; this avoids some nasty
+ weirdness due to the way that the vscreen_widget accessors
+ change their behavior when the widget is destroyed.
+
* src/broken_indicator.cc, src/solution_screen.cc:
Display the resolver progress in the solution screen instead of
Modified: branches/aptitude-0.3/aptitude/src/vscreen/vs_table.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/vs_table.cc (original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/vs_table.cc Wed Sep 21 00:08:17 2005
@@ -176,14 +176,16 @@
focus++;
- while(focus!=children.end() && focus->w->focus_me())
+ while(focus != children.end() &&
+ (!focus->w->get_visible() || !focus->w->focus_me()))
focus++;
if(focus==children.end())
{
focus=children.begin();
- while(focus!=children.end() && focus->w->focus_me())
+ while(focus != children.end() &&
+ (!focus->w->get_visible() || !focus->w->focus_me()))
focus++;
}
@@ -251,7 +253,8 @@
focus++;
while(focus != children.end() && (focus == i ||
- focus->w->focus_me()))
+ !focus->w->get_visible() ||
+ !focus->w->focus_me()))
focus++;
if(focus == children.end())
@@ -259,6 +262,7 @@
focus = children.begin();
while(focus != children.end() && (focus == i ||
+ !focus->w->get_visible() ||
focus->w->focus_me()))
focus++;
}
@@ -316,7 +320,8 @@
vs_widget_ref vs_table::get_focus()
{
- if(focus!=children.end() && focus->w->focus_me())
+ if(focus!=children.end() && focus->w->get_visible() &&
+ focus->w->focus_me())
return focus->w;
else
{
@@ -325,7 +330,7 @@
for(focus=children.begin(); focus!=children.end(); focus++)
{
- if(focus->w->focus_me())
+ if(focus->w->get_visible() && focus->w->focus_me())
{
focus->w->focussed();
return focus->w;
@@ -529,13 +534,15 @@
focus++;
- while(focus!=children.end() && !focus->w->focus_me())
+ while(focus!=children.end() &&
+ !(focus->w->get_visible() && focus->w->focus_me()))
focus++;
if(focus==children.end())
{
focus=children.begin();
- while(focus!=children.end() && !focus->w->focus_me())
+ while(focus!=children.end() &&
+ !(focus->w->get_visible() && focus->w->focus_me()))
focus++;
}
More information about the Aptitude-svn-commit
mailing list