aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lwlib/ChangeLog7
-rw-r--r--lwlib/xlwmenu.c25
2 files changed, 19 insertions, 13 deletions
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 923f52debd..eb2dd13432 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,10 @@
+2004-11-01 Jan Dj,Ad(Brv <[email protected]>
+
+ * xlwmenu.c (find_first_selectable, find_next_selectable)
+ (find_prev_selectable): Rename parameter skip_no_call_data to
+ skip_titles. Recognize titles as having no call_data and no contents.
+ (Down, Up): Comment update.
+
2004-08-30 Jan Dj,Ad(Brv <[email protected]>
* lwlib.h (_widget_value): Added lname and lkey.
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index 973fc6ec5d..d4eeeaa3eb 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -2054,26 +2054,26 @@ Nothing (w, ev, params, num_params)
}
static widget_value *
-find_first_selectable (mw, item, skip_no_call_data)
+find_first_selectable (mw, item, skip_titles)
XlwMenuWidget mw;
widget_value *item;
- int skip_no_call_data;
+ int skip_titles;
{
widget_value *current = item;
enum menu_separator separator;
while (lw_separator_p (current->name, &separator, 0) || !current->enabled
- || (skip_no_call_data && !current->call_data))
+ || (skip_titles && !current->call_data && !current->contents))
if (current->next)
current=current->next;
else
- return NULL;
+ return NULL;
return current;
}
static widget_value *
-find_next_selectable (mw, item, skip_no_call_data)
+find_next_selectable (mw, item, skip_titles)
XlwMenuWidget mw;
widget_value *item;
{
@@ -2082,7 +2082,7 @@ find_next_selectable (mw, item, skip_no_call_data)
while (current->next && (current=current->next) &&
(lw_separator_p (current->name, &separator, 0) || !current->enabled
- || (skip_no_call_data && !current->call_data)))
+ || (skip_titles && !current->call_data && !current->contents)))
;
if (current == item)
@@ -2093,7 +2093,8 @@ find_next_selectable (mw, item, skip_no_call_data)
while (lw_separator_p (current->name, &separator, 0)
|| !current->enabled
- || (skip_no_call_data && !current->call_data))
+ || (skip_titles && !current->call_data
+ && !current->contents))
{
if (current->next)
current=current->next;
@@ -2108,14 +2109,14 @@ find_next_selectable (mw, item, skip_no_call_data)
}
static widget_value *
-find_prev_selectable (mw, item, skip_no_call_data)
+find_prev_selectable (mw, item, skip_titles)
XlwMenuWidget mw;
widget_value *item;
{
widget_value *current = item;
widget_value *prev = item;
- while ((current=find_next_selectable (mw, current, skip_no_call_data))
+ while ((current=find_next_selectable (mw, current, skip_titles))
!= item)
{
if (prev == current)
@@ -2141,8 +2142,7 @@ Down (w, ev, params, num_params)
if (mw->menu.old_depth == mw->menu.top_depth)
/* When <down> in the menu-bar is pressed, display the corresponding
sub-menu and select the first selectable menu item there.
- If this is a popup menu, skip items with zero call data (title of
- the popup). */
+ If this is a popup menu, skip title item of the popup. */
set_new_state (mw,
find_first_selectable (mw,
selected_item->contents,
@@ -2174,8 +2174,7 @@ Up (w, ev, params, num_params)
last selectable item in the list. So we select the first
selectable one and find the previous selectable item. Is there
a better way? */
- /* If this is a popup menu, skip items with zero call data (title of
- the popup). */
+ /* If this is a popup menu, skip title item of the popup. */
set_new_state (mw,
find_first_selectable (mw,
selected_item->contents,