X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Faction.c;h=ec5230e44589dda93cd2e1852c51617206aae88a;hb=37169289844646c60985f9a77c0bb8935ac98515;hp=ea6202e68fe24b84ff1c31ea8cab379b6ed76a63;hpb=827e7baf20c3d0bb8251f5d024d304d0f9bebbe6;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index ea6202e6..ec5230e4 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -1,12 +1,10 @@ #include "client.h" -#include "grab.h" #include "focus.h" #include "moveresize.h" #include "menu.h" #include "prop.h" #include "stacking.h" #include "frame.h" -#include "framerender.h" #include "screen.h" #include "action.h" #include "dispatch.h" @@ -578,13 +576,13 @@ void action_next_desktop_column(union ActionData *data) cur_row_col(&r, &c); ++c; + if (c >= screen_desktop_layout.columns) + c = 0; d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (!data->nextprevdesktop.wrap) return; - c = 0; - } - if (d >= screen_num_desktops) ++c; + } d = translate_row_col(r, c); if (d < screen_num_desktops) screen_set_desktop(d); @@ -596,13 +594,13 @@ void action_previous_desktop_column(union ActionData *data) cur_row_col(&r, &c); --c; + if (c >= screen_desktop_layout.columns) + c = screen_desktop_layout.columns - 1; d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (!data->nextprevdesktop.wrap) return; - c = screen_desktop_layout.columns - 1; - } - if (d >= screen_num_desktops) --c; + } d = translate_row_col(r, c); if (d < screen_num_desktops) screen_set_desktop(d); @@ -614,13 +612,13 @@ void action_next_desktop_row(union ActionData *data) cur_row_col(&r, &c); ++r; + if (r >= screen_desktop_layout.rows) + r = 0; d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (!data->nextprevdesktop.wrap) return; - r = 0; - } - if (d >= screen_num_desktops) ++r; + } d = translate_row_col(r, c); if (d < screen_num_desktops) screen_set_desktop(d); @@ -632,13 +630,13 @@ void action_previous_desktop_row(union ActionData *data) cur_row_col(&r, &c); --r; + if (r >= screen_desktop_layout.rows) + r = screen_desktop_layout.rows - 1; d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (!data->nextprevdesktop.wrap) return; - c = screen_desktop_layout.rows - 1; - } - if (d >= screen_num_desktops) --r; + } d = translate_row_col(r, c); if (d < screen_num_desktops) screen_set_desktop(d); @@ -683,49 +681,11 @@ void action_showmenu(union ActionData *data) } } -static void popup_cycle(Client *c, gboolean hide) -{ - XSetWindowAttributes attrib; - static Window coords = None; - - if (coords == None) { - attrib.override_redirect = TRUE; - coords = XCreateWindow(ob_display, ob_root, - 0, 0, 1, 1, 0, render_depth, InputOutput, - render_visual, CWOverrideRedirect, &attrib); - g_assert(coords != None); - - grab_pointer(TRUE, None); - - XMapWindow(ob_display, coords); - } - - if (hide) { - XDestroyWindow(ob_display, coords); - coords = None; - - grab_pointer(FALSE, None); - } else { - Rect *a; - Size s; - - a = screen_area(c->desktop); - - framerender_size_popup_label(c->title, &s); - XMoveResizeWindow(ob_display, coords, - a->x + (a->width - s.width) / 2, - a->y + (a->height - s.height) / 2, - s.width, s.height); - framerender_popup_label(coords, &s, c->title); - } -} - void action_cycle_windows(union ActionData *data) { Client *c; c = focus_cycle(data->cycle.forward, data->cycle.linear, data->cycle.final, data->cycle.cancel); - popup_cycle(c, !c || data->cycle.final || data->cycle.cancel); }