fix for wrapping in desktop cycling
This commit is contained in:
parent
73e7b2925a
commit
3acd5ff0c5
1 changed files with 14 additions and 21 deletions
|
@ -663,7 +663,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
|
||||||
{
|
{
|
||||||
guint r, c;
|
guint r, c;
|
||||||
static guint d = (guint)-1;
|
static guint d = (guint)-1;
|
||||||
guint ret;
|
guint ret, oldd;
|
||||||
|
|
||||||
if (d == (guint)-1)
|
if (d == (guint)-1)
|
||||||
d = screen_desktop;
|
d = screen_desktop;
|
||||||
|
@ -671,6 +671,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
|
||||||
if ((cancel || done) && dialog)
|
if ((cancel || done) && dialog)
|
||||||
goto show_cycle_dialog;
|
goto show_cycle_dialog;
|
||||||
|
|
||||||
|
oldd = d;
|
||||||
get_row_col(d, &r, &c);
|
get_row_col(d, &r, &c);
|
||||||
|
|
||||||
if (linear) {
|
if (linear) {
|
||||||
|
@ -696,19 +697,17 @@ 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) {
|
if (wrap)
|
||||||
c = 0;
|
c = 0;
|
||||||
} else {
|
else
|
||||||
d = screen_desktop;
|
|
||||||
goto show_cycle_dialog;
|
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) {
|
if (wrap) {
|
||||||
++c;
|
++c;
|
||||||
} else {
|
} else {
|
||||||
d = screen_desktop;
|
d = oldd;
|
||||||
goto show_cycle_dialog;
|
goto show_cycle_dialog;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -716,19 +715,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
|
||||||
case OB_DIRECTION_WEST:
|
case OB_DIRECTION_WEST:
|
||||||
--c;
|
--c;
|
||||||
if (c >= screen_desktop_layout.columns) {
|
if (c >= screen_desktop_layout.columns) {
|
||||||
if (wrap) {
|
if (wrap)
|
||||||
c = screen_desktop_layout.columns - 1;
|
c = screen_desktop_layout.columns - 1;
|
||||||
} else {
|
else
|
||||||
d = screen_desktop;
|
|
||||||
goto show_cycle_dialog;
|
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) {
|
if (wrap) {
|
||||||
--c;
|
--c;
|
||||||
} else {
|
} else {
|
||||||
d = screen_desktop;
|
d = oldd;
|
||||||
goto show_cycle_dialog;
|
goto show_cycle_dialog;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -736,19 +733,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
|
||||||
case OB_DIRECTION_SOUTH:
|
case OB_DIRECTION_SOUTH:
|
||||||
++r;
|
++r;
|
||||||
if (r >= screen_desktop_layout.rows) {
|
if (r >= screen_desktop_layout.rows) {
|
||||||
if (wrap) {
|
if (wrap)
|
||||||
r = 0;
|
r = 0;
|
||||||
} else {
|
else
|
||||||
d = screen_desktop;
|
|
||||||
goto show_cycle_dialog;
|
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) {
|
if (wrap) {
|
||||||
++r;
|
++r;
|
||||||
} else {
|
} else {
|
||||||
d = screen_desktop;
|
d = oldd;
|
||||||
goto show_cycle_dialog;
|
goto show_cycle_dialog;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -756,19 +751,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
|
||||||
case OB_DIRECTION_NORTH:
|
case OB_DIRECTION_NORTH:
|
||||||
--r;
|
--r;
|
||||||
if (r >= screen_desktop_layout.rows) {
|
if (r >= screen_desktop_layout.rows) {
|
||||||
if (wrap) {
|
if (wrap)
|
||||||
r = screen_desktop_layout.rows - 1;
|
r = screen_desktop_layout.rows - 1;
|
||||||
} else {
|
else
|
||||||
d = screen_desktop;
|
|
||||||
goto show_cycle_dialog;
|
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) {
|
if (wrap) {
|
||||||
--r;
|
--r;
|
||||||
} else {
|
} else {
|
||||||
d = screen_desktop;
|
d = oldd;
|
||||||
goto show_cycle_dialog;
|
goto show_cycle_dialog;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue