X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.c;h=ffe74a07078f39d60509571e1da995e5d4939ba7;hb=e27680e4205f5be210cd52660f495e67623e6260;hp=a94347edf0f025b8c09267ecb78b50b0371307c0;hpb=d3660704f1195fb724f5c0c027bdd084824c511f;p=chaz%2Fopenbox diff --git a/openbox/screen.c b/openbox/screen.c index a94347ed..ffe74a07 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -249,6 +249,7 @@ gboolean screen_annex(void) supported[i++] = OBT_PROP_ATOM(NET_WM_WINDOW_TYPE_DIALOG); supported[i++] = OBT_PROP_ATOM(NET_WM_WINDOW_TYPE_NORMAL); supported[i++] = OBT_PROP_ATOM(NET_WM_ALLOWED_ACTIONS); + supported[i++] = OBT_PROP_ATOM(NET_WM_WINDOW_OPACITY); supported[i++] = OBT_PROP_ATOM(NET_WM_ACTION_MOVE); supported[i++] = OBT_PROP_ATOM(NET_WM_ACTION_RESIZE); supported[i++] = OBT_PROP_ATOM(NET_WM_ACTION_MINIMIZE); @@ -479,7 +480,6 @@ void screen_shutdown(gboolean reconfig) void screen_resize(void) { - static gint oldw = 0, oldh = 0; gint w, h; GList *it; gulong geometry[2]; @@ -487,10 +487,6 @@ void screen_resize(void) w = WidthOfScreen(ScreenOfDisplay(obt_display, ob_screen)); h = HeightOfScreen(ScreenOfDisplay(obt_display, ob_screen)); - if (w == oldw && h == oldh) return; - - oldw = w; oldh = h; - /* Set the _NET_DESKTOP_GEOMETRY hint */ screen_physical_size.width = geometry[0] = w; screen_physical_size.height = geometry[1] = h; @@ -503,9 +499,10 @@ void screen_resize(void) /* this calls screen_update_areas(), which we need ! */ dock_configure(); - if (oldw) - for (it = client_list; it; it = g_list_next(it)) - client_move_onscreen(it->data, FALSE); + for (it = client_list; it; it = g_list_next(it)) { + client_move_onscreen(it->data, FALSE); + client_reconfigure(it->data, FALSE); + } } void screen_set_num_desktops(guint num) @@ -1652,7 +1649,7 @@ guint screen_find_monitor(const Rect *search) } } } - return most; + return most < screen_num_monitors ? most : screen_monitor_primary(FALSE); } const Rect* screen_physical_area_all_monitors(void) @@ -1753,3 +1750,12 @@ gboolean screen_pointer_pos(gint *x, gint *y) } return ret; } + +gboolean screen_compare_desktops(guint a, guint b) +{ + if (a == DESKTOP_ALL) + a = screen_desktop; + if (b == DESKTOP_ALL) + b = screen_desktop; + return a == b; +}