diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-10 16:04:08 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-10 16:04:08 +0000 |
| commit | 9a3f05a780f8cbfeb68626552d25c48ab0245ca3 (patch) | |
| tree | b643583a54465307cb72fa8e7deb8fa8acec6136 /openbox/screen.c | |
| parent | df45b1e146b31e31f7cdf9142ffc04f44d6c9649 (diff) | |
don't make interactive desktop cycling switch until you release the mods. this is needed because otherwise focus moves around during the grab and applications get confused. :|
change the pager popup to resize based on the layout so the squares can be bigger
Diffstat (limited to 'openbox/screen.c')
| -rw-r--r-- | openbox/screen.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/openbox/screen.c b/openbox/screen.c index 51f226a5..9ac0ea98 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -641,6 +641,11 @@ void screen_desktop_popup(guint d, gboolean show) a = screen_physical_area_monitor(0); pager_popup_position(desktop_cycle_popup, CenterGravity, a->x + a->width / 2, a->y + a->height / 2); + pager_popup_icon_size_multiplier(desktop_cycle_popup, + screen_desktop_layout.columns / + screen_desktop_layout.rows, + screen_desktop_layout.rows/ + screen_desktop_layout.columns); pager_popup_max_width(desktop_cycle_popup, MAX(a->width/3, POPUP_WIDTH)); pager_popup_show(desktop_cycle_popup, screen_desktop_names[d], d); @@ -650,13 +655,15 @@ void screen_desktop_popup(guint d, gboolean show) guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, gboolean dialog, gboolean done, gboolean cancel) { - guint d, r, c; - - d = screen_desktop; + guint r, c; + static guint d = (guint)-1; + guint ret; if ((cancel || done) && dialog) goto show_cycle_dialog; + if (d == (guint)-1) + d = screen_desktop; get_row_col(d, &r, &c); if (linear) { @@ -772,7 +779,12 @@ show_cycle_dialog: screen_desktop_popup(d, TRUE); } else screen_desktop_popup(0, FALSE); - return d; + ret = d; + + if (!dialog || cancel || done) + d = (guint)-1; + + return ret; } void screen_update_layout() |
