diff options
author | waker <wakeroid@gmail.com> | 2012-10-28 13:22:54 +0100 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2012-10-28 13:22:54 +0100 |
commit | edc1a13b161553ce55c6bba05001245f45323e3a (patch) | |
tree | e1a8b70cb33c25d9cbc8de9f565f2c28d08431c1 /plugins | |
parent | 02502f649e269ec34cf22f6a620f7ffcafec69c5 (diff) |
gtkui: fixed few focus issues
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/gtkui/ddblistview.c | 25 | ||||
-rw-r--r-- | plugins/gtkui/gtkui.c | 2 | ||||
-rw-r--r-- | plugins/gtkui/widgets.c | 4 |
3 files changed, 9 insertions, 22 deletions
diff --git a/plugins/gtkui/ddblistview.c b/plugins/gtkui/ddblistview.c index 557da26b..e13c7456 100644 --- a/plugins/gtkui/ddblistview.c +++ b/plugins/gtkui/ddblistview.c @@ -278,12 +278,6 @@ ddb_listview_motion_notify_event (GtkWidget *widget, gboolean ddb_listview_list_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data); -gboolean -ddb_listview_list_focus_in_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); - -gboolean -ddb_listview_list_focus_out_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); - static void ddb_listview_class_init(DdbListviewClass *class) { @@ -482,8 +476,6 @@ ddb_listview_init(DdbListview *listview) NULL); g_signal_connect ((gpointer)listview->list, "key_press_event", G_CALLBACK (ddb_listview_list_key_press_event), NULL); - g_signal_connect ((gpointer)listview->list, "focus_in_event", G_CALLBACK (ddb_listview_list_focus_in_event), NULL); - g_signal_connect ((gpointer)listview->list, "focus_out_event", G_CALLBACK (ddb_listview_list_focus_out_event), NULL); } GtkWidget * ddb_listview_new() @@ -1285,7 +1277,6 @@ ddb_listview_list_render_row_background (DdbListview *ps, cairo_t *cr, DdbListvi if (gtk_widget_get_style (treeview)->depth == -1) { return; // drawing was called too early } - gtk_widget_set_can_focus (GTK_WIDGET (treeview), TRUE); #endif } int sel = it && ps->binding->is_selected (it); @@ -1313,6 +1304,9 @@ ddb_listview_list_render_row_background (DdbListview *ps, cairo_t *cr, DdbListvi gtk_paint_flat_box (gtk_widget_get_style (treeview), cr, GTK_STATE_SELECTED, GTK_SHADOW_NONE, treeview, even ? "cell_even_ruled" : "cell_odd_ruled", x-1, y-1, w+1, h+1); #else gtk_paint_flat_box (gtk_widget_get_style (treeview), ps->list->window, GTK_STATE_SELECTED, GTK_SHADOW_NONE, NULL, treeview, even ? "cell_even_ruled" : "cell_odd_ruled", x, y, w, h); +// if (GTK_WIDGET_HAS_FOCUS (ps->list)) { +// gtk_paint_focus (gtk_widget_get_style (treeview), ps->list->window, GTK_STATE_SELECTED, NULL, treeview, "treeview", x, y, w, h); +// } #endif } else { @@ -1331,7 +1325,7 @@ ddb_listview_list_render_row_background (DdbListview *ps, cairo_t *cr, DdbListvi #endif } } - if (cursor) { + if (cursor && GTK_WIDGET_HAS_FOCUS (ps->list)) { // not all gtk engines/themes render focus rectangle in treeviews // but we want it anyway //treeview->style->fg_gc[GTK_STATE_NORMAL] @@ -3163,14 +3157,3 @@ ddb_listview_list_key_press_event (GtkWidget *widget, GdkEventKey *event, gpoint } -gboolean -ddb_listview_list_focus_in_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { - gtk_widget_set_can_focus (widget, TRUE); - return FALSE; -} - -gboolean -ddb_listview_list_focus_out_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { - gtk_widget_set_can_focus (widget, FALSE); - return FALSE; -} diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c index ff0a1bf2..38000f7b 100644 --- a/plugins/gtkui/gtkui.c +++ b/plugins/gtkui/gtkui.c @@ -81,8 +81,8 @@ int gtkui_embolden_current_track; void gtkpl_init (void) { theme_treeview = gtk_tree_view_new (); - gtk_widget_set_can_focus (theme_treeview, FALSE); gtk_widget_show (theme_treeview); + gtk_widget_set_can_focus (theme_treeview, FALSE); GtkWidget *vbox1 = lookup_widget (mainwin, "vbox1"); gtk_box_pack_start (GTK_BOX (vbox1), theme_treeview, FALSE, FALSE, 0); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (theme_treeview), TRUE); diff --git a/plugins/gtkui/widgets.c b/plugins/gtkui/widgets.c index 3d151bed..7d6893d3 100644 --- a/plugins/gtkui/widgets.c +++ b/plugins/gtkui/widgets.c @@ -810,6 +810,7 @@ w_splitter_unlock (w_splitter_t *w) { int vert = w->base.type == "vsplitter"; // convert back to vpaned GtkWidget *paned = vert ? gtk_vpaned_new () : gtk_hpaned_new (); + gtk_widget_set_can_focus (paned, FALSE); gtk_widget_show (paned); GList *lst = gtk_container_get_children (GTK_CONTAINER (w->box)); @@ -947,6 +948,7 @@ w_vsplitter_create (void) { memset (w, 0, sizeof (w_splitter_t)); w->position = -1; w->base.widget = gtk_vpaned_new (); + gtk_widget_set_can_focus (w->base.widget, FALSE); w->base.append = w_splitter_add; w->base.remove = w_splitter_remove; w->base.replace = w_splitter_replace; @@ -1001,6 +1003,7 @@ w_hsplitter_create (void) { memset (w, 0, sizeof (w_splitter_t)); w->position = -1; w->base.widget = gtk_hpaned_new (); + gtk_widget_set_can_focus (w->base.widget, FALSE); w->base.append = w_splitter_add; w->base.remove = w_splitter_remove; w->base.replace = w_splitter_replace; @@ -1766,6 +1769,7 @@ w_selproperties_create (void) { memset (w, 0, sizeof (w_selproperties_t)); w->base.widget = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_set_can_focus (w->base.widget, FALSE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (w->base.widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); w->tree = gtk_tree_view_new (); gtk_widget_show (w->tree); |