Little fix for tooltips.
authorHong Jen Yee (PCMan) <pcman.tw@gmail.com>
Sun, 29 Oct 2006 09:52:33 +0000 (09:52 +0000)
committerHong Jen Yee (PCMan) <pcman.tw@gmail.com>
Sun, 29 Oct 2006 09:52:33 +0000 (09:52 +0000)
src/configurator.c
src/plugins/cpu/cpu.c
src/plugins/dclock.c
src/plugins/image.c
src/plugins/launchbar.c
src/plugins/taskbar.c
src/plugins/volume/volume.c
src/plugins/wincmd.c

index 0142f5f..fe30ea9 100644 (file)
@@ -94,13 +94,11 @@ response_event(GtkDialog *widget, gint arg1, gpointer user_data)
     ENTER;
     switch (arg1) {
     case GTK_RESPONSE_DELETE_EVENT:
-        DBG("GTK_RESPONSE_DELETE_EVENT\n");
+    case GTK_RESPONSE_CLOSE:
+    case GTK_RESPONSE_NONE:
         gtk_widget_destroy(dialog);
         dialog = NULL;
         break;
-    case GTK_RESPONSE_CLOSE:
-        gtk_widget_hide(dialog);
-        break;
     case GTK_RESPONSE_APPLY:
         if (!mk_profile_dir()) {
             ERR("can't make ~/.lxpanel direcory\n");
@@ -836,10 +834,7 @@ void
 configure(void)
 {
     ENTER;
-    DBG("dialog %p\n",  dialog);
-    if (!dialog)
-        dialog = mk_dialog();
-    gtk_widget_show(dialog);
+    dialog = mk_dialog();
 
     update_opt_menu(edge_opt, p->edge - 1);
     update_opt_menu(allign_opt, p->allign - 1);
@@ -859,6 +854,8 @@ configure(void)
 
     update_toggle_button(prop_dt_checkb, p->setdocktype);
     update_toggle_button(prop_st_checkb, p->setstrut);
+
+    gtk_window_present((GtkWindow*)dialog);
     RET();
 }
 
index a04fc9b..0d09557 100644 (file)
@@ -51,7 +51,7 @@ typedef struct {
     GtkWidget *da;
     GtkWidget *evbox;
     GdkPixmap *pixmap;
-    GtkTooltips *tip;
+    /* GtkTooltips *tip; */
 
     int timer;
     tick *stats_cpu;
@@ -164,8 +164,16 @@ cpu_constructor(plugin *p)
 
     gtk_widget_show(c->da);
 
+/*
     c->tip = gtk_tooltips_new();
+#if GLIB_CHECK_VERSION( 2, 10, 0 )
+    g_object_ref_sink( c->tip );
+#else
+    g_object_ref( c->tip );
+    gtk_object_sink( c->tip );
+#endif
+*/
+
     c->gc_cpu = gdk_gc_new(p->panel->topgwin->window);
     DBG("here1\n");
     c->ccpu = (GdkColor *)malloc(sizeof(GdkColor));
@@ -195,6 +203,7 @@ cpu_destructor(plugin *p)
     g_free(c->stats_cpu);
     g_free(c->ccpu);
     g_source_remove(c->timer);
+    /* g_object_unref( c->tip ); */
     g_free(p->priv);
     RET();
 }
index c6ac5fc..429d6bb 100644 (file)
@@ -130,6 +130,12 @@ dclock_constructor(plugin *p)
     gtk_container_add(GTK_CONTAINER(dc->main), dc->clockw);
     gtk_widget_show_all(dc->main);
     dc->tip = gtk_tooltips_new();
+#if GLIB_CHECK_VERSION( 2, 10, 0 )
+    g_object_ref_sink( dc->tip );
+#else
+    g_object_ref( dc->tip );
+    gtk_object_sink( dc->tip );
+#endif
     dc->timer = g_timeout_add(1000, (GSourceFunc) clock_update, (gpointer)dc);
     gtk_container_add(GTK_CONTAINER(p->pwid), dc->main);
 
@@ -155,6 +161,7 @@ dclock_destructor(plugin *p)
   if (dc->timer)
       g_source_remove(dc->timer);
   gtk_widget_destroy(dc->main);
+  g_object_unref( dc->tip );
   g_free(dc->cfmt);
   g_free(dc->tfmt);
   g_free(dc->action);
index ebe7634..207de1e 100644 (file)
@@ -32,6 +32,7 @@ image_destructor(plugin *p)
     if (img->pix)
         g_object_unref(img->pix);
     //
+    g_object_unref( img->tips );
     g_free(img);
     RET();
 }
@@ -55,6 +56,12 @@ image_constructor(plugin *p)
     img = g_new0(image, 1);
     g_return_val_if_fail(img != NULL, 0);
     img->tips = gtk_tooltips_new();
+#if GLIB_CHECK_VERSION( 2, 10, 0 )
+    g_object_ref_sink( img->tips );
+#else
+    g_object_ref( img->tips );
+    gtk_object_sink( img->tips );
+#endif
     p->priv = img;
     tooltip = fname = 0;
     while (lxpanel_get_line(p->fp, &s) != LINE_BLOCK_END) {
index dceb8e6..71a7cba 100644 (file)
@@ -91,6 +91,8 @@ launchbar_destructor(plugin *p)
     int i;
 
     ENTER;
+    g_object_unref( lb->tips );
+
     gtk_widget_destroy(lb->box);
     for (i = 0; i < lb->btn_num; i++) {
         g_free(lb->btns[i].action);
@@ -314,7 +316,12 @@ launchbar_constructor(plugin *p)
     gtk_container_set_border_width (GTK_CONTAINER (lb->box), 0);
     gtk_widget_show(lb->box);
     lb->tips = gtk_tooltips_new();
-    
+#if GLIB_CHECK_VERSION( 2, 10, 0 )
+    g_object_ref_sink( lb->tips );
+#else
+    g_object_ref( lb->tips );
+    gtk_object_sink( lb->tips );
+#endif
     if  (p->panel->orientation == ORIENT_HORIZ)
         lb->iconsize = GTK_WIDGET(p->panel->box)->allocation.height;
     else
index 8c0060e..f3a87de 100644 (file)
@@ -1274,7 +1274,12 @@ taskbar_build_gui(plugin *p)
         Can we delete the tooltip object if tooltips is not enabled?
     if (tb->tooltips) */
     tb->tips = gtk_tooltips_new();
-
+#if GLIB_CHECK_VERSION( 2, 10, 0 )
+    g_object_ref_sink( tb->tips );
+#else
+    g_object_ref( tb->tips );
+    gtk_object_sink( tb->tips );
+#endif
     tb->menu = taskbar_make_menu(tb);
     gtk_container_set_border_width(GTK_CONTAINER(p->pwid), 0);
     gtk_widget_show_all(tb->bar);
@@ -1397,10 +1402,10 @@ taskbar_destructor(plugin *p)
     g_signal_handlers_disconnect_by_func(G_OBJECT (fbev), tb_net_number_of_desktops, tb);
     g_signal_handlers_disconnect_by_func(G_OBJECT (fbev), tb_net_client_list, tb);   
     gdk_window_remove_filter(NULL, (GdkFilterFunc)tb_event_filter, tb );
-    g_hash_table_destroy(tb->task_list); 
+    g_object_unref( tb->tips );
+    g_hash_table_destroy(tb->task_list);
     gtk_widget_destroy(tb->bar);
     gtk_widget_destroy(tb->menu);
-  
     RET();
 }
 
index 5bbc0c6..344b513 100644 (file)
@@ -110,6 +110,13 @@ volume_constructor(plugin *p)
        gtk_container_add(GTK_CONTAINER(p->pwid), vol->mainw);
 
        vol->tooltips = gtk_tooltips_new ();
+#if GLIB_CHECK_VERSION( 2, 10, 0 )
+    g_object_ref_sink( vol->tooltips );
+#else
+    g_object_ref( vol->tooltips );
+    gtk_object_sink( vol->tooltips );
+#endif
+
        /* FIXME: display current level in tooltip. ex: "Volume Control: 80%"  */
        gtk_tooltips_set_tip (vol->tooltips, vol->mainw, _("Volume control"), NULL);
 
index 4cfd0d4..3bc9cb9 100644 (file)
@@ -155,7 +155,7 @@ wincmd_destructor(plugin *p)
         g_object_unref(wc->mask);
     if (wc->pix)
         g_object_unref(wc->pix);
-    //gtk_widget_destroy(wc->tips);
+    g_object_unref( wc->tips );
     g_free(wc);
     RET();
 }
@@ -177,6 +177,12 @@ wincmd_constructor(plugin *p)
     wc = g_new0(wincmd, 1);
     g_return_val_if_fail(wc != NULL, 0);
     wc->tips = gtk_tooltips_new();
+#if GLIB_CHECK_VERSION( 2, 10, 0 )
+    g_object_ref_sink( wc->tips );
+#else
+    g_object_ref( wc->tips );
+    gtk_object_sink( wc->tips );
+#endif
     p->priv = wc;
     fname = NULL;
     while (lxpanel_get_line(p->fp, &s) != LINE_BLOCK_END) {