Index: src/windowlist.c =================================================================== --- src/windowlist.c (revision 23435) +++ src/windowlist.c (working copy) @@ -46,6 +46,7 @@ static gboolean show_windowlist = TRUE; static gboolean show_windowlist_icons = TRUE; +static guint windowlist_width = 24; static void set_num_workspaces(GtkWidget *w, gpointer num) @@ -115,8 +116,11 @@ if(GTK_IS_LABEL(widget)) { GtkLabel *label = GTK_LABEL(widget); gtk_label_set_use_markup(label, TRUE); - gtk_label_set_ellipsize(label, PANGO_ELLIPSIZE_MIDDLE); - gtk_label_set_max_width_chars(label, 24); + if (windowlist_width != 0) + { + gtk_label_set_ellipsize(label, PANGO_ELLIPSIZE_MIDDLE); + gtk_label_set_max_width_chars(label, windowlist_width); + } *done = TRUE; } else if(GTK_IS_CONTAINER (widget)) @@ -367,6 +371,13 @@ mcs_setting_free(setting); setting = NULL; } + if(MCS_SUCCESS == mcs_client_get_setting(mcs_client, "windowlist_width", + BACKDROP_CHANNEL, &setting)) + { + windowlist_width = setting->data.v_int; + mcs_setting_free(setting); + setting = NULL; + } } } @@ -381,6 +392,10 @@ show_windowlist = setting->data.v_int; return TRUE; } + if(!strcmp(setting->name, "windowlist_width")) { + windowlist_width = setting->data.v_int; + return TRUE; + } break; case MCS_ACTION_DELETED: Index: settings/behavior-settings.c =================================================================== --- settings/behavior-settings.c (revision 23435) +++ settings/behavior-settings.c (working copy) @@ -30,6 +30,7 @@ enum { OPT_SHOWWL = 1, + OPT_WLWIDTH, #ifdef USE_DESKTOP_MENU OPT_SHOWDM, #endif @@ -42,6 +43,7 @@ /* globals */ static gboolean show_windowlist = TRUE; +static guint windowlist_width = 24; #ifdef USE_DESKTOP_MENU static gboolean show_desktopmenu = TRUE; #endif @@ -105,6 +107,10 @@ "xfce-sbtnnum")); switch(opt) { + case OPT_WLWIDTH: + windowlist_width = value; + mcs_manager_set_int(bd->plugin->manager, "windowlist_width", + BACKDROP_CHANNEL, value); case OPT_ICONSICONSIZE: desktop_icons_icon_size = value; mcs_manager_set_int(bd->plugin->manager, "icons_icon_size", @@ -252,9 +258,34 @@ gtk_widget_show(chk); gtk_box_pack_start(GTK_BOX(vbox), chk, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(chk), "toggled", G_CALLBACK(set_chk_option), bd); - + + hbox = gtk_hbox_new(FALSE, BORDER); + gtk_widget_show(hbox); + gtk_container_add(GTK_CONTAINER(vbox), hbox); + + lbl = gtk_label_new_with_mnemonic(_("Window list wid_th:")); + gtk_widget_show(lbl); + gtk_box_pack_start(GTK_BOX(hbox), lbl, FALSE, FALSE, 0); + + sbtn = gtk_spin_button_new_with_range(0.0, 3200.0, 10.0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(sbtn), 24); + g_object_set_data(G_OBJECT(sbtn), "xfce-sbtnnum", + GUINT_TO_POINTER(OPT_WLWIDTH)); + gtk_widget_show(sbtn); + gtk_box_pack_start(GTK_BOX(hbox), sbtn, FALSE, FALSE, 0); + gtk_label_set_mnemonic_widget(GTK_LABEL(lbl), sbtn); + g_signal_connect(G_OBJECT(sbtn), "value-changed", + G_CALLBACK(set_sbtn_option), bd); + + lbl = gtk_label_new(_("(0 is unlimited)")); + gtk_widget_show(lbl); + gtk_box_pack_start(GTK_BOX(hbox), lbl, FALSE, FALSE, 0); + if(!xfce_kiosk_query(kiosk, "CustomizeWindowlist")) + { gtk_widget_set_sensitive(chk, FALSE); + gtk_widget_set_sensitive(sbtn, FALSE); + } #ifdef USE_DESKTOP_MENU chk = gtk_check_button_new_with_mnemonic(_("Show _desktop menu on right click"));