From 8d81088eb9c9a23e5458d797d8bf1ec0f110dd68 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 7 May 2007 05:43:31 +0000 Subject: [PATCH] we were always overwriting the last desktop name --- openbox/screen.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/openbox/screen.c b/openbox/screen.c index 3aa1230f..34943fa6 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -302,25 +302,27 @@ void screen_startup(gboolean reconfig) GSList *it; guint i; - desktop_cycle_popup = pager_popup_new(FALSE); - pager_popup_height(desktop_cycle_popup, POPUP_HEIGHT); - if (!reconfig) /* get the initial size */ screen_resize(); + desktop_cycle_popup = pager_popup_new(FALSE); + pager_popup_height(desktop_cycle_popup, POPUP_HEIGHT); + +#if 0 /* get the names */ if (PROP_GETSS(RootWindow(ob_display, ob_screen), net_desktop_names, utf8, &screen_desktop_names)) for (i = 0; screen_desktop_names[i]; ++i); else +#endif i = 0; for (it = g_slist_nth(config_desktops_names, i); it; it = g_slist_next(it), ++i) { screen_desktop_names = g_renew(gchar*, screen_desktop_names, i + 2); - screen_desktop_names[i+1] = NULL; screen_desktop_names[i] = g_strdup(it->data); + screen_desktop_names[i+1] = NULL; } /* then set the names */ PROP_SETSS(RootWindow(ob_display, ob_screen), @@ -629,6 +631,8 @@ 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_max_width(desktop_cycle_popup, + MAX(a->width/3, POPUP_WIDTH)); pager_popup_show(desktop_cycle_popup, screen_desktop_names[d], d); } } @@ -876,23 +880,21 @@ void screen_update_desktop_names() if (PROP_GETSS(RootWindow(ob_display, ob_screen), net_desktop_names, utf8, &screen_desktop_names)) - for (i = 0; screen_desktop_names[i] && i <= screen_num_desktops; ++i); + for (i = 0; screen_desktop_names[i] && i < screen_num_desktops; ++i); else i = 0; - if (i <= screen_num_desktops) { + if (i < screen_num_desktops - 1) { screen_desktop_names = g_renew(gchar*, screen_desktop_names, screen_num_desktops + 1); screen_desktop_names[screen_num_desktops] = NULL; - for (; i < screen_num_desktops; ++i) + for (; i < screen_num_desktops - 1; ++i) screen_desktop_names[i] = g_strdup_printf("desktop %i", i + 1); } /* resize the pager for these names */ - pager_popup_width_to_strings(desktop_cycle_popup, - screen_desktop_names, - screen_num_desktops, - MAX(screen_physical_area_monitor(0)->width/3, - POPUP_WIDTH)); + pager_popup_text_width_to_strings(desktop_cycle_popup, + screen_desktop_names, + screen_num_desktops); } void screen_show_desktop(gboolean show, gboolean restore_focus) -- 2.45.2