fix service/movie remove (hold cursor position when possible)
[enigma2.git] / lib / gui / elistboxcontent.cpp
index 1391a2b56f2e44a320c12caac075b7216bfd7d8a..95d92e09c74172b184fdbff1764e7e7844144ba7 100644 (file)
@@ -246,6 +246,7 @@ void eListboxStringContent::setList(std::list<std::string> &list)
        m_list = list;
        m_size = list.size();
        cursorHome();
+       m_listbox->entryReset(false);
 }
 
 //////////////////////////////////////
@@ -366,9 +367,8 @@ void eListboxPythonStringContent::setList(PyObject *list)
                Py_INCREF(m_list);
        }
 
-       //always invalidate when we get a new list
        if (m_listbox)
-               m_listbox->invalidate();
+               m_listbox->entryReset(false);
 }
 
 PyObject *eListboxPythonStringContent::getCurrentSelection()
@@ -422,7 +422,7 @@ void eListboxPythonConfigContent::paint(gPainter &painter, eWindowStyle &style,
                                /* handle left part. get item from tuple, convert to string, display. */
                                
                        text = PyTuple_GetItem(item, 0);
-                       text = PyObject_Str(text);
+                       text = PyObject_Str(text); /* creates a new object - old object was borrowed! */
                        const char *string = (text && PyString_Check(text)) ? PyString_AsString(text) : "<not-a-string>";
                        eSize item_left = eSize(m_seperation, m_itemsize.height());
                        eSize item_right = eSize(m_itemsize.width() - m_seperation, m_itemsize.height());
@@ -525,7 +525,7 @@ void eListboxPythonConfigContent::paint(gPainter &painter, eWindowStyle &style,
                                                        /* plist is 0 or borrowed */
                                        }
                                }
-                               Py_XDECREF(type);
+                                       /* type is borrowed */
                        } else
                                eWarning("eListboxPythonConfigContent: second value of tuple is not a tuple.");
                                /* value is borrowed */