X11: Obey menu movement keys
This commit is contained in:
+16
-7
@@ -2548,6 +2548,20 @@ int dir;
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
find_scrollbars(w, horiz, vert)
|
||||
Widget w;
|
||||
Widget *horiz, *vert;
|
||||
{
|
||||
if (w) {
|
||||
do {
|
||||
*horiz = XtNameToWidget(w, "*horizontal");
|
||||
*vert = XtNameToWidget(w, "*vertical");
|
||||
w = XtParent(w);
|
||||
} while (!*horiz && !*vert && w);
|
||||
}
|
||||
}
|
||||
|
||||
/* Callback
|
||||
* Scroll a viewport, using standard NH 1,2,3,4,6,7,8,9 directions.
|
||||
*/
|
||||
@@ -2560,7 +2574,7 @@ String *params;
|
||||
Cardinal *num_params;
|
||||
{
|
||||
Arg arg[2];
|
||||
Widget horiz_sb, vert_sb, scrollw;
|
||||
Widget horiz_sb = (Widget) 0, vert_sb = (Widget) 0;
|
||||
float top, shown;
|
||||
Boolean do_call;
|
||||
int direction;
|
||||
@@ -2573,12 +2587,7 @@ Cardinal *num_params;
|
||||
|
||||
direction = atoi(params[0]);
|
||||
|
||||
scrollw = viewport;
|
||||
do {
|
||||
horiz_sb = XtNameToWidget(scrollw, "*horizontal");
|
||||
vert_sb = XtNameToWidget(scrollw, "*vertical");
|
||||
scrollw = XtParent(scrollw);
|
||||
} while (!horiz_sb && !vert_sb && scrollw);
|
||||
find_scrollbars(viewport, &horiz_sb, &vert_sb);
|
||||
|
||||
#define H_DELTA 0.25 /* distance of horiz shift */
|
||||
/* vert shift is half of curr distance */
|
||||
|
||||
Reference in New Issue
Block a user