fix drawing bug when selecting, plus an unnecessary redraw of the
submenu when entering parent on active submenu item
This commit is contained in:
parent
8a85867a69
commit
4da8af73fa
2 changed files with 18 additions and 10 deletions
|
@ -1,5 +1,8 @@
|
||||||
(Format: Year/Month/Day)
|
(Format: Year/Month/Day)
|
||||||
Changes for 0.9.6:
|
Changes for 0.9.6:
|
||||||
|
*03/09/08:
|
||||||
|
* Fix when selecting + unneeded submenu redraw on enter+motion (Simon)
|
||||||
|
Menu.cc
|
||||||
*03/09/06:
|
*03/09/06:
|
||||||
* Added Resize x y as command (Thanks Mathias Gumz)
|
* Added Resize x y as command (Thanks Mathias Gumz)
|
||||||
FbCommands.cc/hh, FbCommandFactory.cc
|
FbCommands.cc/hh, FbCommandFactory.cc
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Menu.cc,v 1.37 2003/08/30 01:03:48 fluxgen Exp $
|
// $Id: Menu.cc,v 1.38 2003/09/07 14:57:49 rathnor Exp $
|
||||||
|
|
||||||
//use GNU extensions
|
//use GNU extensions
|
||||||
#ifndef _GNU_SOURCE
|
#ifndef _GNU_SOURCE
|
||||||
|
@ -524,8 +524,8 @@ void Menu::update(int active_index) {
|
||||||
|
|
||||||
if (title_vis && visible)
|
if (title_vis && visible)
|
||||||
redrawTitle();
|
redrawTitle();
|
||||||
/*
|
|
||||||
if (m_need_update) {
|
if (active_index >= 0) {
|
||||||
for (unsigned int i = 0; visible && i < menuitems.size(); i++) {
|
for (unsigned int i = 0; visible && i < menuitems.size(); i++) {
|
||||||
if (i == (unsigned int)which_sub) {
|
if (i == (unsigned int)which_sub) {
|
||||||
drawItem(i, true, true, false);
|
drawItem(i, true, true, false);
|
||||||
|
@ -536,7 +536,7 @@ void Menu::update(int active_index) {
|
||||||
if (m_parent && visible)
|
if (m_parent && visible)
|
||||||
m_parent->drawSubmenu(m_parent->which_sub);
|
m_parent->drawSubmenu(m_parent->which_sub);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
menu.window.clear();
|
menu.window.clear();
|
||||||
renderTransFrame();
|
renderTransFrame();
|
||||||
|
|
||||||
|
@ -1067,9 +1067,10 @@ void Menu::buttonPressEvent(XButtonEvent &be) {
|
||||||
|
|
||||||
MenuItem *item = menuitems[w];
|
MenuItem *item = menuitems[w];
|
||||||
|
|
||||||
if (item->submenu())
|
if (item->submenu()) {
|
||||||
drawSubmenu(w);
|
if (!item->submenu()->isVisible())
|
||||||
else
|
drawSubmenu(w);
|
||||||
|
} else
|
||||||
drawItem(w, item->isEnabled(), true, true);
|
drawItem(w, item->isEnabled(), true, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1109,6 +1110,9 @@ void Menu::buttonReleaseEvent(XButtonEvent &re) {
|
||||||
re.y > iy && re.y < (signed) (iy + menu.item_h)) {
|
re.y > iy && re.y < (signed) (iy + menu.item_h)) {
|
||||||
menuitems[w]->click(re.button, re.time);
|
menuitems[w]->click(re.button, re.time);
|
||||||
itemSelected(re.button, w);
|
itemSelected(re.button, w);
|
||||||
|
// redraw whole menu as enableds for any item
|
||||||
|
// may have changed
|
||||||
|
update(w);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
drawItem(p, isItemEnabled(p) && (p == which_sub), true, true);
|
drawItem(p, isItemEnabled(p) && (p == which_sub), true, true);
|
||||||
|
@ -1172,9 +1176,10 @@ void Menu::motionNotifyEvent(XMotionEvent &me) {
|
||||||
|
|
||||||
MenuItem *itmp = menuitems[w];
|
MenuItem *itmp = menuitems[w];
|
||||||
|
|
||||||
if (itmp->submenu())
|
if (itmp->submenu()) {
|
||||||
drawSubmenu(w);
|
if (!itmp->submenu()->isVisible())
|
||||||
else
|
drawSubmenu(w);
|
||||||
|
} else
|
||||||
if (itmp->isEnabled())
|
if (itmp->isEnabled())
|
||||||
drawItem(w, true, true, true);
|
drawItem(w, true, true, true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue