when not wrapping, still show the dialog when you reach an edge
This commit is contained in:
parent
d8e7261309
commit
a2543824e8
1 changed files with 49 additions and 16 deletions
|
@ -646,49 +646,81 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
|
||||||
case OB_DIRECTION_EAST:
|
case OB_DIRECTION_EAST:
|
||||||
++c;
|
++c;
|
||||||
if (c >= screen_desktop_layout.columns) {
|
if (c >= screen_desktop_layout.columns) {
|
||||||
if (!wrap) return d = screen_desktop;
|
if (wrap) {
|
||||||
c = 0;
|
c = 0;
|
||||||
|
} else {
|
||||||
|
d = screen_desktop;
|
||||||
|
goto show_cycle_dialog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
d = translate_row_col(r, c);
|
d = translate_row_col(r, c);
|
||||||
if (d >= screen_num_desktops) {
|
if (d >= screen_num_desktops) {
|
||||||
if (!wrap) return d = screen_desktop;
|
if (wrap) {
|
||||||
++c;
|
++c;
|
||||||
|
} else {
|
||||||
|
d = screen_desktop;
|
||||||
|
goto show_cycle_dialog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OB_DIRECTION_WEST:
|
case OB_DIRECTION_WEST:
|
||||||
--c;
|
--c;
|
||||||
if (c >= screen_desktop_layout.columns) {
|
if (c >= screen_desktop_layout.columns) {
|
||||||
if (!wrap) return d = screen_desktop;
|
if (wrap) {
|
||||||
c = screen_desktop_layout.columns - 1;
|
c = screen_desktop_layout.columns - 1;
|
||||||
|
} else {
|
||||||
|
d = screen_desktop;
|
||||||
|
goto show_cycle_dialog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
d = translate_row_col(r, c);
|
d = translate_row_col(r, c);
|
||||||
if (d >= screen_num_desktops) {
|
if (d >= screen_num_desktops) {
|
||||||
if (!wrap) return d = screen_desktop;
|
if (wrap) {
|
||||||
--c;
|
--c;
|
||||||
|
} else {
|
||||||
|
d = screen_desktop;
|
||||||
|
goto show_cycle_dialog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OB_DIRECTION_SOUTH:
|
case OB_DIRECTION_SOUTH:
|
||||||
++r;
|
++r;
|
||||||
if (r >= screen_desktop_layout.rows) {
|
if (r >= screen_desktop_layout.rows) {
|
||||||
if (!wrap) return d = screen_desktop;
|
if (wrap) {
|
||||||
r = 0;
|
r = 0;
|
||||||
|
} else {
|
||||||
|
d = screen_desktop;
|
||||||
|
goto show_cycle_dialog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
d = translate_row_col(r, c);
|
d = translate_row_col(r, c);
|
||||||
if (d >= screen_num_desktops) {
|
if (d >= screen_num_desktops) {
|
||||||
if (!wrap) return d = screen_desktop;
|
if (wrap) {
|
||||||
++r;
|
++r;
|
||||||
|
} else {
|
||||||
|
d = screen_desktop;
|
||||||
|
goto show_cycle_dialog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OB_DIRECTION_NORTH:
|
case OB_DIRECTION_NORTH:
|
||||||
--r;
|
--r;
|
||||||
if (r >= screen_desktop_layout.rows) {
|
if (r >= screen_desktop_layout.rows) {
|
||||||
if (!wrap) return d = screen_desktop;
|
if (wrap) {
|
||||||
r = screen_desktop_layout.rows - 1;
|
r = screen_desktop_layout.rows - 1;
|
||||||
|
} else {
|
||||||
|
d = screen_desktop;
|
||||||
|
goto show_cycle_dialog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
d = translate_row_col(r, c);
|
d = translate_row_col(r, c);
|
||||||
if (d >= screen_num_desktops) {
|
if (d >= screen_num_desktops) {
|
||||||
if (!wrap) return d = screen_desktop;
|
if (wrap) {
|
||||||
--r;
|
--r;
|
||||||
|
} else {
|
||||||
|
d = screen_desktop;
|
||||||
|
goto show_cycle_dialog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -699,6 +731,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
|
||||||
d = translate_row_col(r, c);
|
d = translate_row_col(r, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_cycle_dialog:
|
||||||
if (dialog) {
|
if (dialog) {
|
||||||
screen_desktop_popup(d, TRUE);
|
screen_desktop_popup(d, TRUE);
|
||||||
return d;
|
return d;
|
||||||
|
|
Loading…
Reference in a new issue