Little fixes.
authorHong Jen Yee (PCMan) <pcman.tw@gmail.com>
Fri, 6 Oct 2006 15:25:28 +0000 (15:25 +0000)
committerHong Jen Yee (PCMan) <pcman.tw@gmail.com>
Fri, 6 Oct 2006 15:25:28 +0000 (15:25 +0000)
intltool-merge
src/Makefile.am
src/Makefile.in
src/gtk-run.c
src/panel.c
src/plugins/menu.c

index cf9e08e..01345b0 100755 (executable)
@@ -257,7 +257,7 @@ sub gather_po_files
 sub get_local_charset
 {
     my ($encoding) = @_;
-    my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "/lib/charset.alias";
+    my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "/usr/lib/charset.alias";
 
     # seek character encoding aliases in charset.alias (glib)
 
index 3a92b6f..4b2d0a2 100644 (file)
@@ -47,7 +47,7 @@ lxpanel_SOURCES = \
 
 lxpanel_LDADD = $(PACKAGE_LIBS) $(INTLLIBS)
 
-lxpanelctl_SOURCES = lxpanelctl.c
+lxpanelctl_SOURCES = lxpanelctl.c lxpanelctl.h
 lxpanelctl_LDADD = -lX11 $(INTLLIBS)
 
 EXTRA_DIST = \
index eb5daff..c27f283 100644 (file)
@@ -262,7 +262,7 @@ lxpanel_SOURCES = \
        gtk-run.c
 
 lxpanel_LDADD = $(PACKAGE_LIBS) $(INTLLIBS)
-lxpanelctl_SOURCES = lxpanelctl.c
+lxpanelctl_SOURCES = lxpanelctl.c lxpanelctl.h
 lxpanelctl_LDADD = -lX11 $(INTLLIBS)
 EXTRA_DIST = \
        plugins/icon.xpm
index 34cdcaa..bddebc3 100644 (file)
@@ -128,7 +128,8 @@ void gtk_run()
     gtk_window_set_position( (GtkWindow*)win, GTK_WIN_POS_CENTER );
     gtk_window_set_default_size( (GtkWindow*)win, 360, -1 );
     gtk_widget_show_all( win );
-    g_timeout_add( 500, setup_auto_complete, entry );
+    /* g_timeout_add( 500, setup_auto_complete, entry ); */
+    setup_auto_complete( entry );
     gtk_widget_show( (GtkDialog*)win );
 }
 
index c36f643..e0db68d 100644 (file)
@@ -121,19 +121,26 @@ print_wmdata(panel *p)
 
 
 /* defined in plugins/menu.c */
-void show_system_menu( gpointer system_menu );
+gboolean show_system_menu( gpointer system_menu );
 
 /* built-in commands, defined in configurator.c */
 void configure(void);
 void restart(void);
 void gtk_run(void);
 
-static void process_client_msg ( panel *p, int cmd )
+static void process_client_msg ( panel *p, XClientMessageEvent* ev )
 {
+    int cmd = ev->data.b[0];
     switch( cmd )
     {
         case LXPANEL_CMD_SYS_MENU:
-            show_system_menu( p->system_menu );
+            if( p->system_menu )
+            {
+                show_system_menu( p->system_menu );
+                /* FIXME: I've no idea why this doesn't work without timeout
+                          under some WMs, like icewm. */
+                g_timeout_add( 200, show_system_menu, p->system_menu );
+            }
             break;
         case LXPANEL_CMD_RUN:
             gtk_run();
@@ -163,7 +170,7 @@ panel_event_filter(GdkXEvent *xevent, GdkEvent *event, panel *p)
         /* private client message from lxpanelctl */
         if( ev->type == ClientMessage && ev->xproperty.atom == a_LXPANEL_CMD )
         {
-            process_client_msg( p, ((XClientMessageEvent*)ev)->data.b[0] );
+            process_client_msg( p, (XClientMessageEvent*)ev );
         }
         RET(GDK_FILTER_CONTINUE);
        }
@@ -698,7 +705,12 @@ void panel_stop(panel *p)
     g_list_foreach(p->plugins, delete_plugin, NULL);
     g_list_free(p->plugins);
     p->plugins = NULL;
+
+    if( p->system_menu ){
+        do{
+        } while ( g_source_remove_by_user_data( p->system_menu ) );
+    }
+
     XSelectInput (GDK_DISPLAY(), GDK_ROOT_WINDOW(), NoEventMask);
     gdk_window_remove_filter(gdk_get_default_root_window (), (GdkFilterFunc)panel_event_filter, p);
     gtk_widget_destroy(p->topgwin);
index b4e46a8..b10425d 100644 (file)
@@ -154,10 +154,11 @@ my_button_pressed(GtkWidget *widget, GdkEventButton *event, menup* m)
     RET(TRUE);
 }
 
-void show_system_menu( gpointer system_menu )
+gboolean show_system_menu( gpointer system_menu )
 {
     menup* m = (menup*)system_menu;
-    show_menu( m->bg, m, 0, gtk_get_current_event_time() );
+    show_menu( m->bg, m, 0, GDK_CURRENT_TIME );
+    return FALSE;
 }
 
 static GtkWidget *