qulogic/libgnt

Pluck some bug-fixes for finch/gnt for the bug-fix release.
release-2.3.1
2007-12-01, Sadrul Habib Chowdhury
4ce31581a004
Parents 267c34cfb7fc
Children 12e831101cc5
Pluck some bug-fixes for finch/gnt for the bug-fix release.

applied changes from 19db9cbb33be6b1ee81115f2ec70f630269c92f4
through d731028483beaf239cd344e962c1a32638943883

applied changes from 19db9cbb33be6b1ee81115f2ec70f630269c92f4
through fb4562e25805935b7f84c12cc47a028a0dc25f3a

applied changes from fb4562e25805935b7f84c12cc47a028a0dc25f3a
through e8f945cbbdd235c0fb371834fddf396f568b672f

applied changes from 96bb0250f516ff49a03fcaa2b7720865d9668ccd
through 10b5584bcb92c67e0dc20d17fd72eeaf351aaa86

applied changes from 10b5584bcb92c67e0dc20d17fd72eeaf351aaa86
through 0fbf448aa3c17cb83eac458e6f9b06e38fd14d1d
  • +4 -0
    gnt.h
  • +8 -2
    gntbox.c
  • +4 -3
    gntentry.c
  • +19 -0
    gntmenu.c
  • +2 -1
    gntwindow.c
  • +2 -2
    test/tv.c
  • --- a/gnt.h Sat Dec 01 14:08:02 2007 +0000
    +++ b/gnt.h Sat Dec 01 22:17:32 2007 +0000
    @@ -30,6 +30,9 @@
    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
    */
    +#ifndef GNT_H
    +#define GNT_H
    +
    #include <glib.h>
    #include "gntwidget.h"
    #include "gntclipboard.h"
    @@ -201,3 +204,4 @@
    */
    gboolean gnt_is_refugee(void);
    +#endif /* GNT_H */
    --- a/gntbox.c Sat Dec 01 14:08:02 2007 +0000
    +++ b/gntbox.c Sat Dec 01 22:17:32 2007 +0000
    @@ -851,8 +851,14 @@
    void gnt_box_give_focus_to_child(GntBox *box, GntWidget *widget)
    {
    - GList *find = g_list_find(box->focus, widget);
    - gpointer now = box->active;
    + GList *find;
    + gpointer now;
    +
    + while (GNT_WIDGET(box)->parent)
    + box = GNT_BOX(GNT_WIDGET(box)->parent);
    +
    + find = g_list_find(box->focus, widget);
    + now = box->active;
    if (find)
    box->active = widget;
    if (now && now != box->active)
    --- a/gntentry.c Sat Dec 01 14:08:02 2007 +0000
    +++ b/gntentry.c Sat Dec 01 22:17:32 2007 +0000
    @@ -575,15 +575,16 @@
    next_begin_word(const char *text, const char *end)
    {
    gunichar ch = 0;
    +
    + while (text && text < end && g_unichar_isspace(g_utf8_get_char(text)))
    + text = g_utf8_find_next_char(text, end);
    +
    ch = g_utf8_get_char(text);
    while ((text = g_utf8_find_next_char(text, end)) != NULL && text <= end) {
    gunichar cur = g_utf8_get_char(text);
    if (!SAME(ch, cur))
    break;
    }
    -
    - while (text && text < end && g_unichar_isspace(g_utf8_get_char(text)))
    - text = g_utf8_find_next_char(text, end);
    return (text ? text : end);
    }
    --- a/gntmenu.c Sat Dec 01 14:08:02 2007 +0000
    +++ b/gntmenu.c Sat Dec 01 22:17:32 2007 +0000
    @@ -47,6 +47,8 @@
    static void (*org_size_request)(GntWidget *wid);
    static gboolean (*org_key_pressed)(GntWidget *w, const char *t);
    +static void menuitem_activate(GntMenu *menu, GntMenuItem *item);
    +
    static void
    menu_hide_all(GntMenu *menu)
    {
    @@ -56,6 +58,20 @@
    }
    static void
    +show_submenu(GntMenu *menu)
    +{
    + GntMenuItem *item;
    +
    + if (menu->type != GNT_MENU_TOPLEVEL)
    + return;
    +
    + item = g_list_nth_data(menu->list, menu->selected);
    + if (!item || !item->submenu)
    + return;
    + menuitem_activate(menu, item);
    +}
    +
    +static void
    gnt_menu_draw(GntWidget *widget)
    {
    GntMenu *menu = GNT_MENU(widget);
    @@ -276,6 +292,8 @@
    gnt_widget_hide(widget);
    } else
    gnt_widget_hide(widget);
    + if (par && par->type == GNT_MENU_TOPLEVEL)
    + gnt_menu_key_pressed(GNT_WIDGET(par), text);
    return TRUE;
    }
    @@ -297,6 +315,7 @@
    GntMenu *sub = menu->submenu;
    if (sub)
    gnt_widget_hide(GNT_WIDGET(sub));
    + show_submenu(menu);
    gnt_widget_draw(widget);
    return TRUE;
    }
    --- a/gntwindow.c Sat Dec 01 14:08:02 2007 +0000
    +++ b/gntwindow.c Sat Dec 01 22:17:32 2007 +0000
    @@ -62,7 +62,8 @@
    if (window->menu)
    gnt_widget_destroy(GNT_WIDGET(window->menu));
    if (window->priv) {
    - g_hash_table_destroy(window->priv->accels);
    + if (window->priv->accels)
    + g_hash_table_destroy(window->priv->accels);
    g_free(window->priv);
    }
    org_destroy(widget);
    --- a/test/tv.c Sat Dec 01 14:08:02 2007 +0000
    +++ b/test/tv.c Sat Dec 01 22:17:32 2007 +0000
    @@ -112,8 +112,8 @@
    gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view), "plugins: ", GNT_TEXT_FLAG_BOLD);
    gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view), "this is the 2nd line\n", GNT_TEXT_FLAG_NORMAL);
    - gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view), "plugins: ", GNT_TEXT_FLAG_BOLD);
    - gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view), "this is the 3rd line\n", GNT_TEXT_FLAG_NORMAL);
    + gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view), "plugins: ", GNT_TEXT_FLAG_BOLD | gnt_color_pair(GNT_COLOR_HIGHLIGHT));
    + gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view), "this is the 3rd line\n", GNT_TEXT_FLAG_NORMAL | gnt_color_pair(GNT_COLOR_HIGHLIGHT));
    gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view), "plugins: ", GNT_TEXT_FLAG_BOLD);
    gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view), "this is the 4th line\n", GNT_TEXT_FLAG_NORMAL);