Add About box
authormartyj19 <martyj19@comcast.net>
Wed, 27 May 2009 17:25:12 +0000 (17:25 +0000)
committermartyj19 <martyj19@comcast.net>
Wed, 27 May 2009 17:25:12 +0000 (17:25 +0000)
Add window icons to configuration dialogs
Add help on dclock format strings
Warning cleanups
Fix GTK assertion in menu icon load
Add keyboard equivalents to taskbar popup menu (FR2781949)
Fix margin control range, sensitivity
Fix width control range, fix geometry calculations so it doesn't fly off edge of screen
Improve geometry of menu configuration dialog
Replace xterm by lxterminal as default terminal
Apply workaround for docbook2man toolchain
Apply autogen.sh fixes

15 files changed:
autogen.sh
configure.ac
data/default/config
man/Makefile.am
src/configurator.c
src/misc.c
src/misc.h
src/panel.c
src/panel.h
src/plugins/dclock.c
src/plugins/dirmenu.c
src/plugins/launchbar.c
src/plugins/menu.c
src/plugins/netstatus/netstatus.c
src/plugins/taskbar.c

index bd9a164..676f858 100755 (executable)
@@ -8,8 +8,8 @@ if [ "x${ACLOCAL_DIR}" != "x" ]; then
   ACLOCAL_ARG=-I ${ACLOCAL_DIR}
 fi
 
-${ACLOCAL:-aclocal$AC_VERSION} ${ACLOCAL_ARG}
-${AUTOHEADER:-autoheader$AC_VERSION}
+${ACLOCAL:-aclocal$AM_VERSION} ${ACLOCAL_ARG}
+${AUTOHEADER:-autoheader$AC_VERSION} --force
 AUTOMAKE=${AUTOMAKE:-automake$AM_VERSION} libtoolize -c --automake --force
 AUTOMAKE=${AUTOMAKE:-automake$AM_VERSION} intltoolize -c --automake --force
 ${AUTOMAKE:-automake$AM_VERSION} --add-missing --copy --include-deps
index 11da091..dfda43e 100644 (file)
@@ -13,6 +13,7 @@ AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_LIBTOOL
 AC_PROG_INTLTOOL(, [no-xml])
+AM_PROG_CC_C_O
 
 # Checks for libraries.
 pkg_modules="gtk+-2.0 >= 2.12.0 \
index 43bb8de..0100fcc 100644 (file)
@@ -1,4 +1,4 @@
 [Command]
 FileManager=pcmanfm %s
-Terminal=xterm -e
+Terminal=lxterminal
 
index 316edfa..7b74a3e 100644 (file)
@@ -8,9 +8,9 @@ dist-hook: lxpanel.1 lxpanelctl.1
 lxpanel.1: lxpanel.sgml
        (test -f "`which docbook-to-man`" && docbook-to-man $< > $@) || \
        (test -f "`which db2man`" && db2man $< > $@) || \
-       (test -f "`which docbook2man`" && docbook2man $< > $@)
+       (test -f "`which docbook2man`" && docbook2man $< && mv LXPANEL.1 $@)
 
 lxpanelctl.1: lxpanelctl.sgml
        (test -f "`which docbook-to-man`" && docbook-to-man $< > $@) || \
        (test -f "`which db2man`" && db2man $< > $@) || \
-       (test -f "`which docbook2man`" && docbook2man $< > $@)
+       (test -f "`which docbook2man`" && docbook2man $< && mv LXPANEL.1 $@)
index 033530f..3608dec 100644 (file)
@@ -170,11 +170,8 @@ set_allign( GtkComboBox *widget,  Panel* p )
 
     ENTER;
     allign = gtk_combo_box_get_active(widget) + 1;
-    t = (allign != ALLIGN_CENTER);
-    /*
-    gtk_widget_set_sensitive(margin_label, t);
-    gtk_widget_set_sensitive(margin_spinb, t);
-    */
+    if (p->margin_control) 
+        gtk_widget_set_sensitive(p->margin_control, (allign != ALLIGN_CENTER));
     p->allign = allign;
     update_panel_geometry(p);
     RET();
@@ -213,10 +210,10 @@ static void set_width_type( GtkWidget *item, Panel* p )
     t = (widthtype != WIDTH_REQUEST);
     gtk_widget_set_sensitive( spin, t );
     if (widthtype == WIDTH_PERCENT) {
-        gtk_spin_button_set_range( (GtkSpinButton*)spin, 0, 100 );
+        gtk_spin_button_set_range( (GtkSpinButton*)spin, 0, 110 );     /* Bug in spin buttons, must set maximum range up by page size */
         gtk_spin_button_set_value( (GtkSpinButton*)spin, 100 );
     } else if  (widthtype == WIDTH_PIXEL) {
-        gtk_spin_button_set_range( (GtkSpinButton*)spin, 0, gdk_screen_width() );
+        gtk_spin_button_set_range( (GtkSpinButton*)spin, 0, gdk_screen_width() + 10 );
         gtk_spin_button_set_value( (GtkSpinButton*)spin, gdk_screen_width() );
     } else
         return;
@@ -513,6 +510,7 @@ static void on_add_plugin( GtkButton* btn, GtkTreeView* _view )
                                        GTK_RESPONSE_CANCEL,
                                        GTK_STOCK_ADD,
                                        GTK_RESPONSE_OK, NULL );
+    panel_apply_icon(GTK_WINDOW(dlg));
 
     /* fix background */
     if (p->background)
@@ -561,7 +559,7 @@ static void on_add_plugin( GtkButton* btn, GtkTreeView* _view )
     g_signal_connect( dlg, "response",
                       G_CALLBACK(on_add_plugin_response), _view );
     g_object_set_data( G_OBJECT(dlg), "avail-plugins", view );
-    g_object_weak_ref( G_OBJECT(dlg), plugin_class_list_free, classes );
+    g_object_weak_ref( G_OBJECT(dlg), (GWeakNotify) plugin_class_list_free, classes );
 
     gtk_window_set_default_size( (GtkWindow*)dlg, 320, 400 );
     gtk_widget_show_all( dlg );
@@ -754,8 +752,9 @@ void panel_configure( Panel* p, int sel_page )
 
     p->pref_dialog = (GtkWidget*)gtk_builder_get_object( builder, "panel_pref" );
     g_signal_connect(p->pref_dialog, "response", (GCallback) response_event, p);
-    g_object_add_weak_pointer( G_OBJECT(p->pref_dialog), &p->pref_dialog );
+    g_object_add_weak_pointer( G_OBJECT(p->pref_dialog), (gpointer) &p->pref_dialog );
     gtk_window_set_position( (GtkWindow*)p->pref_dialog, GTK_WIN_POS_CENTER );
+    panel_apply_icon(GTK_WINDOW(p->pref_dialog));
 
     /* position */
     w = (GtkWidget*)gtk_builder_get_object( builder, "edge" );
@@ -766,19 +765,22 @@ void panel_configure( Panel* p, int sel_page )
     update_opt_menu( w, p->allign - 1 );
     g_signal_connect( w, "changed", G_CALLBACK(set_allign), p);
 
-    w = (GtkWidget*)gtk_builder_get_object( builder, "margin" );
+    p->margin_control = w = (GtkWidget*)gtk_builder_get_object( builder, "margin" );
     gtk_spin_button_set_value( (GtkSpinButton*)w, p->margin );
+    gtk_widget_set_sensitive(p->margin_control, (p->allign != ALLIGN_CENTER));
     g_signal_connect( w, "value-changed",
                       G_CALLBACK(set_margin), p);
 
     /* size */
     width = w = (GtkWidget*)gtk_builder_get_object( builder, "width" );
     gtk_widget_set_sensitive( w, p->widthtype != WIDTH_REQUEST );
+    gint upper = 0;
     if( p->widthtype == WIDTH_PERCENT) {
-        gtk_spin_button_set_range( (GtkSpinButton*)w, 0, 100 );
+        upper = 100;
     } else if( p->widthtype == WIDTH_PIXEL) {
-        gtk_spin_button_set_range( (GtkSpinButton*)w, 0, gdk_screen_width() );
+        upper = gdk_screen_width();
     }
+    gtk_spin_button_set_range( (GtkSpinButton*)w, 0, upper + 10 );     /* Appears to be a problem in spin buttons, must add the page size */
     gtk_spin_button_set_value( (GtkSpinButton*)w, p->width );
     g_signal_connect( w, "value-changed", G_CALLBACK(set_width), p );
 
@@ -789,6 +791,7 @@ void panel_configure( Panel* p, int sel_page )
                      G_CALLBACK(set_width_type), p);
 
     w = (GtkWidget*)gtk_builder_get_object( builder, "height" );
+    gtk_spin_button_set_range( (GtkSpinButton*)w, PANEL_HEIGHT_MIN, PANEL_HEIGHT_MAX + 10 );   /* Appears to be a problem in spin buttons, must add the page size */
     gtk_spin_button_set_value( (GtkSpinButton*)w, p->height );
     g_signal_connect( w, "value-changed", G_CALLBACK(set_height), p );
 
@@ -1131,6 +1134,7 @@ GtkWidget* create_generic_config_dlg( const char* title, GtkWidget* parent,
                                                   GTK_STOCK_CLOSE,
                                                   GTK_RESPONSE_CLOSE,
                                                   NULL );
+    panel_apply_icon(GTK_WINDOW(dlg));
 
     /* this is a dirty hack.  We need to check if this response is GTK_RESPONSE_CLOSE or not. */
     g_signal_connect( dlg, "response", G_CALLBACK(gtk_widget_destroy), NULL );
@@ -1156,6 +1160,7 @@ GtkWidget* create_generic_config_dlg( const char* title, GtkWidget* parent,
                 entry = gtk_entry_new();
                 if( *(char**)val )
                     gtk_entry_set_text( GTK_ENTRY(entry), *(char**)val );
+                gtk_entry_set_width_chars(GTK_ENTRY(entry), 40);
                 g_signal_connect( entry, "focus-out-event",
                   G_CALLBACK(on_entry_focus_out), val );
                 break;
@@ -1181,10 +1186,19 @@ GtkWidget* create_generic_config_dlg( const char* title, GtkWidget* parent,
                     gtk_file_chooser_set_filename( GTK_FILE_CHOOSER(entry), *(char**)val );
                 g_signal_connect( entry, "file-set",
                   G_CALLBACK(on_file_chooser_btn_file_set), val );
+                break;
+            case CONF_TYPE_TRIM:
+                {
+                entry = gtk_label_new(NULL);
+                char *markup = g_markup_printf_escaped ("<span style=\"italic\">%s</span>", name );
+                gtk_label_set_markup (GTK_LABEL (entry), markup);
+                g_free (markup);
+                }
+                break;
         }
         if( entry )
         {
-            if( type == CONF_TYPE_BOOL )
+            if(( type == CONF_TYPE_BOOL ) || ( type == CONF_TYPE_TRIM ))
                 gtk_box_pack_start( GTK_BOX(GTK_DIALOG(dlg)->vbox), entry, FALSE, FALSE, 2 );
             else
             {
index b9abe39..f867c7e 100644 (file)
@@ -790,7 +790,7 @@ calculate_width(int scrw, int wtype, int allign, int margin,
 {
     ENTER;
     DBG("scrw=%d\n", scrw);
-    DBG("IN panw=%d\n", *panw);
+    DBG("IN panw=%d, margin=%d\n", *panw, margin);
     //scrw -= 2;
     if (wtype == WIDTH_PERCENT) {
         /* sanity check */
@@ -806,11 +806,7 @@ calculate_width(int scrw, int wtype, int allign, int margin,
                   margin, scrw);
             margin = 0;
         }
-        if (wtype == WIDTH_PERCENT)
-            //*panw = MAX(scrw - margin, *panw);
-            ;
-        else
-            *panw = MIN(scrw - margin, *panw);
+       *panw = MIN(scrw - margin, *panw);
     }
     DBG("OUT panw=%d\n", *panw);
     if (allign == ALLIGN_LEFT)
@@ -1541,7 +1537,7 @@ GdkPixbuf* lxpanel_load_icon( const char* name, int size, gboolean use_fallback
         else
         {
             theme = gtk_icon_theme_get_default();
-            suffix = strchr( name, '.' );
+            suffix = strrchr( name, '.' );
             if( suffix
                 && (0 == g_strcasecmp(++suffix, "png")
                 || 0 == g_strcasecmp(suffix, "svg")
index 66f832f..22fd977 100644 (file)
@@ -33,7 +33,8 @@ enum {
     CONF_TYPE_INT,
     CONF_TYPE_BOOL,
     CONF_TYPE_FILE,
-    CONF_TYPE_FILE_ENTRY
+    CONF_TYPE_FILE_ENTRY,
+    CONF_TYPE_TRIM
 };
 
 enum { LINE_NONE, LINE_BLOCK_START, LINE_BLOCK_END, LINE_VAR };
index da09174..b64594a 100644 (file)
@@ -712,6 +712,41 @@ static void panel_popupmenu_delete_panel( GtkMenuItem* item, Panel* panel )
     }
 }
 
+static void panel_popupmenu_about( GtkMenuItem* item, Panel* panel )
+{
+    GtkWidget *about;
+    const gchar* authors[] = {
+        "Hong Jen Yee (PCMan) <pcman.tw@gmail.com>",
+        "Jim Huang <jserv.tw@gmail.com>",
+        "Greg McNew <gmcnew@gmail.com> (battery plugin)",
+        "Fred Chien <cfsghost@gmail.com>",
+        "Daniel Kesler <kesler.daniel@gmail.com>",
+        "Juergen Hoetzel <juergen@archlinux.org>",
+        NULL
+    };
+    /* TRANSLATORS: Replace this string with your names, one name per line. */
+    gchar *translators = _( "translator-credits" );
+
+    about = gtk_about_dialog_new();
+    panel_apply_icon(GTK_WINDOW(about));
+    gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(about), VERSION);
+    gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), _("LXPanel"));
+    gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(about), gdk_pixbuf_new_from_file(PACKAGE_DATA_DIR "/lxpanel/images/my-computer.png", NULL));
+    gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(about), _("Copyright (C) 2008-2009"));
+    gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(about), _( "Desktop panel for LXDE project"));
+    gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(about), "This program is free software; you can redistribute it and/or\nmodify it under the terms of the GNU General Public License\nas published by the Free Software Foundation; either version 2\nof the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.");
+    gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(about), "http://lxde.org/");
+    gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(about), authors);
+    gtk_about_dialog_set_translator_credits(GTK_ABOUT_DIALOG(about), translators);
+    gtk_dialog_run(GTK_DIALOG(about));
+    gtk_widget_destroy(about); 
+}
+
+void panel_apply_icon( GtkWindow *w )
+{
+    gtk_window_set_icon_from_file(w, PACKAGE_DATA_DIR "/lxpanel/images/my-computer.png", NULL);
+}
+
 extern GtkMenu* lxpanel_get_panel_menu( Panel* panel, Plugin* plugin, gboolean use_sub_menu )
 {
     GtkWidget  *menu_item, *img;
@@ -773,6 +808,15 @@ extern GtkMenu* lxpanel_get_panel_menu( Panel* panel, Plugin* plugin, gboolean u
     if( ! all_panels->next )    /* if this is the only panel */
         gtk_widget_set_sensitive( menu_item, FALSE );
 
+    menu_item = gtk_separator_menu_item_new();
+    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);
+
+    img = gtk_image_new_from_stock( GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU );
+    menu_item = gtk_image_menu_item_new_with_label(_("About"));
+    gtk_image_menu_item_set_image( (GtkImageMenuItem*)menu_item, img );
+    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);
+    g_signal_connect( menu_item, "activate", G_CALLBACK(panel_popupmenu_about), panel );
+
     if( use_sub_menu )
     {
         ret = GTK_MENU(gtk_menu_new());
@@ -1427,7 +1471,7 @@ int main(int argc, char *argv[], char *env[])
 
     /* Check for duplicated lxpanel instances */
     if (!check_main_lock() && !config) {
-        printf("There is alreay an instance of LXPanel. Now to exit\n");
+        printf("There is already an instance of LXPanel.  Now to exit\n");
         exit(1);
     }
 
index 4944325..5fc8ef5 100644 (file)
@@ -96,6 +96,7 @@ struct _Panel{
     GSList* system_menus;
 
     GtkWidget* pref_dialog; /* preference dialog */
+    GtkWidget* margin_control;         /* Margin control in preference dialog */
 };
 
 
@@ -188,6 +189,7 @@ extern FbEv *fbev;
 
 #define FBPANEL_WIN(win)  gdk_window_lookup(win)
 
+void panel_apply_icon(GtkWindow *w);
 void panel_destroy(Panel *p);
 void panel_set_wm_strut(Panel *p);
 void panel_set_dock_type(Panel *p);
index d5fbb24..2c45760 100644 (file)
@@ -278,6 +278,7 @@ static void dclock_config( Plugin *p, GtkWindow* parent )
                                     (GSourceFunc) apply_config, (gpointer) p,
                                      _("Clock Format"), &dc->cfmt, CONF_TYPE_STR,
                                      _("Tooltip Format"), &dc->tfmt, CONF_TYPE_STR,
+                                     _("Format codes: man 3 strftime"), NULL, CONF_TYPE_TRIM,
                                      _("Action"), &dc->action, CONF_TYPE_STR,
                                      _("Bold font"), &dc->bold, CONF_TYPE_BOOL,
                                      NULL );
index fe6a1d3..ea5d266 100644 (file)
@@ -75,7 +75,7 @@ static void open_in_term( Plugin* p, const char* path )
     if( sp )
         argv[0] = g_strndup( term, sp - term );
     else
-        argv[0] = term;
+        argv[0] = (char *) term;
     argv[1] = NULL;
     g_spawn_async( path, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL );
     if( argv[0] != term )
index c800b3b..755a039 100644 (file)
@@ -737,6 +737,7 @@ static void launchbar_config( Plugin *p, GtkWindow* parent )
                                         GTK_RESPONSE_CLOSE,
                                         NULL );
         lb->config_dlg = dlg;
+        panel_apply_icon(GTK_WINDOW(dlg));
 
         hbox = gtk_hbox_new( FALSE, 4 );
         gtk_box_pack_start( (GtkBox*)GTK_DIALOG(dlg)->vbox, hbox, TRUE, TRUE, 2 );
index 0aea2cb..9bbbd49 100644 (file)
@@ -176,8 +176,11 @@ static void on_menu_item_map(GtkWidget* mi, MenuCacheItem* item)
             gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &w, &h);
             item = g_object_get_qdata(G_OBJECT(mi), SYS_MENU_ITEM_ID);
             icon = lxpanel_load_icon(menu_cache_item_get_icon(item), MAX(w,h), TRUE);
-            gtk_image_set_from_pixbuf(img, icon);
-            g_object_unref(icon);
+            if (icon)
+               {
+                gtk_image_set_from_pixbuf(img, icon);
+                g_object_unref(icon);
+               }
         }
     }
 }
@@ -362,11 +365,7 @@ static gboolean on_menu_button_press(GtkWidget* mi, GdkEventButton* evt, MenuCac
         char* tmp;
         GtkWidget* item;
         GtkMenu* p = GTK_MENU(gtk_menu_new());
-/*
-        item = gtk_menu_item_new_with_label(_("Add to desktop panel"));
-        g_signal_connect(item, "activate", G_CALLBACK(on_add_menu_item_to_panel), data);
-        gtk_menu_shell_append(p, item);
-*/
+
         item = gtk_menu_item_new_with_label(_("Add to desktop"));
         g_signal_connect(item, "activate", G_CALLBACK(on_add_menu_item_to_desktop), data);
         gtk_menu_shell_append(GTK_MENU_SHELL(p), item);
@@ -406,7 +405,7 @@ static GtkWidget* create_item( MenuCacheItem* item )
         if( menu_cache_item_get_type(item) == MENU_CACHE_TYPE_APP )
         {
             gtk_widget_set_tooltip_text( mi, menu_cache_item_get_comment(item) );
-            g_signal_connect( mi, "activate", on_menu_item, item );
+            g_signal_connect( mi, "activate", G_CALLBACK(on_menu_item), item );
         }
         g_signal_connect(mi, "map", G_CALLBACK(on_menu_item_map), item);
         g_signal_connect(mi, "style-set", G_CALLBACK(on_menu_item_style_set), item);
@@ -414,7 +413,7 @@ static GtkWidget* create_item( MenuCacheItem* item )
     }
     gtk_widget_show( mi );
     /* g_debug("set_item_data"); */
-    g_object_set_qdata_full( G_OBJECT(mi), SYS_MENU_ITEM_ID, menu_cache_item_ref(item), menu_cache_item_unref );
+    g_object_set_qdata_full( G_OBJECT(mi), SYS_MENU_ITEM_ID, menu_cache_item_ref(item), (GDestroyNotify) menu_cache_item_unref );
     return mi;
 }
 
@@ -760,7 +759,7 @@ read_system_menu(GtkMenu* menu, Plugin *p, char** fp)
             ERR("error loading applications menu");
             return;
         }
-        m->reload_notify = menu_cache_add_reload_notify(m->menu_cache, on_reload_menu, m);
+        m->reload_notify = menu_cache_add_reload_notify(m->menu_cache, (GFunc) on_reload_menu, m);
     }
 
     s.len = 256;
index e8c39f8..2c6f0c9 100644 (file)
@@ -137,7 +137,7 @@ netstatus_constructor(Plugin *p, char** fp)
 
     iface = netstatus_iface_new(ns->iface);
     ns->mainw = netstatus_icon_new( iface );
-    netstatus_icon_set_show_signal(ns->mainw, TRUE);
+    netstatus_icon_set_show_signal((NetstatusIcon *)ns->mainw, TRUE);
     gtk_widget_add_events( ns->mainw, GDK_BUTTON_PRESS_MASK );
     g_object_unref( iface );
     g_signal_connect( ns->mainw, "button-press-event",
@@ -161,7 +161,7 @@ static void apply_config(Plugin* p)
     NetstatusIface* iface;
 
     iface = netstatus_iface_new(ns->iface);
-    netstatus_icon_set_iface(ns->mainw, iface);
+    netstatus_icon_set_iface((NetstatusIcon *)ns->mainw, iface);
 }
 
 static void netstatus_config( Plugin* p, GtkWindow* parent  )
index d9d1d1c..eca0d51 100644 (file)
@@ -1404,19 +1404,19 @@ taskbar_make_menu(taskbar *tb)
     ENTER;
     menu = gtk_menu_new ();
 
-    mi = gtk_menu_item_new_with_label (_("Raise"));
+    mi = gtk_menu_item_new_with_mnemonic (_("_Raise"));
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
     g_signal_connect(G_OBJECT(mi), "activate", (GCallback)menu_raise_window, tb);
 
-    mi = gtk_menu_item_new_with_label (_("Restore"));
+    mi = gtk_menu_item_new_with_mnemonic (_("R_estore"));
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
     g_signal_connect(G_OBJECT(mi), "activate", (GCallback)menu_restore_window, tb);
 
-    mi = gtk_menu_item_new_with_label (_("Maximize"));
+    mi = gtk_menu_item_new_with_mnemonic (_("Ma_ximize"));
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
     g_signal_connect(G_OBJECT(mi), "activate", (GCallback)menu_maximize_window, tb);
 
-    mi = gtk_menu_item_new_with_label (_("Iconify"));
+    mi = gtk_menu_item_new_with_mnemonic (_("Ico_nify"));
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
     g_signal_connect(G_OBJECT(mi), "activate", (GCallback)menu_iconify_window, tb);
 
@@ -1440,7 +1440,7 @@ taskbar_make_menu(taskbar *tb)
 
         gtk_widget_show_all( workspace_menu );
 
-        mi = gtk_menu_item_new_with_label (_("Move to Workspace"));
+        mi = gtk_menu_item_new_with_mnemonic (_("_Move to Workspace"));
         gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
 
         gtk_menu_item_set_submenu( GTK_MENU_ITEM(mi), workspace_menu );
@@ -1448,7 +1448,7 @@ taskbar_make_menu(taskbar *tb)
     }
 
     /* we want this item to be farest from mouse pointer */
-    mi = gtk_menu_item_new_with_label (_("Close Window"));
+    mi = gtk_menu_item_new_with_mnemonic (_("_Close Window"));
     if (tb->plug->panel->edge == EDGE_BOTTOM)
     {
         gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new());
@@ -1664,13 +1664,7 @@ static void apply_config( Plugin* p )
     else
         gtk_container_foreach( GTK_CONTAINER(tb->bar), (GtkCallback)gtk_widget_set_has_tooltip, (gpointer)FALSE );
 
-    if (tb->icons_only)
-    {
-        gtk_bar_set_max_child_size(GTK_BAR(tb->bar),
-          GTK_WIDGET(p->panel->box)->allocation.height -2);
-    }
-    else
-        gtk_bar_set_max_child_size(GTK_BAR(tb->bar), tb->task_width_max);
+    gtk_bar_set_max_child_size(GTK_BAR(tb->bar), ((tb->icons_only) ? GTK_WIDGET(p->panel->box)->allocation.height - 2 : tb->task_width_max));
 
     gtk_box_set_spacing( GTK_BOX(tb->bar), tb->spacing );
     tb_net_client_list(NULL, tb);
@@ -1690,8 +1684,8 @@ static void taskbar_config( Plugin* p, GtkWindow* parent )
                 (GSourceFunc) apply_config, (gpointer) p,
                 _("Show tooltips"), &tb->tooltips, CONF_TYPE_BOOL,
                 _("Icons only"), &tb->icons_only, CONF_TYPE_BOOL,
-                 _("Flat Buttons"), &tb->flat_button, CONF_TYPE_BOOL,
-               _("Accept SkipPager"), &tb->accept_skip_pager, CONF_TYPE_BOOL,
+                _("Flat Buttons"), &tb->flat_button, CONF_TYPE_BOOL,
+                _("Accept SkipPager"), &tb->accept_skip_pager, CONF_TYPE_BOOL,
                 _("Show Iconified windows"), &tb->show_iconified, CONF_TYPE_BOOL,
                 _("Show mapped windows"), &tb->show_mapped, CONF_TYPE_BOOL,
                 _("Show windows from all desktops"), &tb->show_all_desks, CONF_TYPE_BOOL,